>>> ardour: Building community/ardour 8.10.0-r0 (using abuild 3.14.1-r1) started Wed, 06 Nov 2024 14:19:49 +0000
>>> ardour: Validating /home/buildozer/aports/community/ardour/APKBUILD...
>>> ardour: Analyzing dependencies...
>>> ardour: Installing for build: build-base alsa-lib-dev atkmm-dev aubio-dev boost-dev fftw-dev fluidsynth-dev gtk+2.0-dev gtkmm-dev hidapi-dev itstool jack-dev libarchive-dev liblo-dev libpng-dev libsamplerate-dev libsigc++-dev libsndfile-dev libusb-dev lilv-dev lrdf-dev lv2-dev pulseaudio-dev python3 readline-dev redland-dev rubberband-dev serd-dev sratom-dev suil-dev taglib-dev vamp-sdk-dev
(1/447) Installing alsa-lib (1.2.12-r0)
(2/447) Installing alsa-lib-dev (1.2.12-r0)
(3/447) Installing libffi (3.4.6-r0)
(4/447) Installing libintl (0.22.5-r0)
(5/447) Installing libeconf (0.6.3-r0)
(6/447) Installing libblkid (2.40.2-r3)
(7/447) Installing libmount (2.40.2-r3)
(8/447) Installing glib (2.82.2-r0)
(9/447) Installing libatk-1.0 (2.54.0-r0)
(10/447) Installing libsigc++ (2.12.1-r0)
(11/447) Installing glibmm (2.66.7-r0)
(12/447) Installing atkmm (2.28.4-r1)
(13/447) Installing libxau (1.0.11-r4)
(14/447) Installing libmd (1.1.0-r0)
(15/447) Installing libbsd (0.12.2-r0)
(16/447) Installing libxdmcp (1.1.5-r1)
(17/447) Installing libxcb (1.16.1-r0)
(18/447) Installing libx11 (1.8.10-r0)
(19/447) Installing libxext (1.3.6-r2)
(20/447) Installing libxi (1.8.2-r0)
(21/447) Installing libxtst (1.2.5-r0)
(22/447) Installing dbus-libs (1.14.10-r4)
(23/447) Installing at-spi2-core (2.54.0-r0)
(24/447) Installing libatk-bridge-2.0 (2.54.0-r0)
(25/447) Installing dbus-dev (1.14.10-r4)
(26/447) Installing libbz2 (1.0.8-r6)
(27/447) Installing bzip2-dev (1.0.8-r6)
(28/447) Installing xz-libs (5.6.3-r0)
(29/447) Installing libxml2 (2.13.4-r3)
(30/447) Installing libxml2-utils (2.13.4-r3)
(31/447) Installing docbook-xml (4.5-r9)
Executing docbook-xml-4.5-r9.post-install
(32/447) Installing libgpg-error (1.50-r0)
(33/447) Installing libgcrypt (1.10.3-r1)
(34/447) Installing libxslt (1.1.42-r1)
(35/447) Installing docbook-xsl-ns (1.79.2-r11)
Executing docbook-xsl-ns-1.79.2-r11.post-install
(36/447) Installing docbook-xsl-nons (1.79.2-r11)
Executing docbook-xsl-nons-1.79.2-r11.post-install
(37/447) Installing docbook-xsl (1.79.2-r11)
(38/447) Installing xz (5.6.3-r0)
(39/447) Installing gettext-asprintf (0.22.5-r0)
(40/447) Installing gettext-libs (0.22.5-r0)
(41/447) Installing gettext-envsubst (0.22.5-r0)
(42/447) Installing gettext (0.22.5-r0)
(43/447) Installing gettext-dev (0.22.5-r0)
(44/447) Installing gdbm (1.24-r0)
(45/447) Installing mpdecimal (4.0.0-r0)
(46/447) Installing libpanelw (6.5_p20241006-r2)
(47/447) Installing sqlite-libs (3.47.0-r0)
(48/447) Installing python3 (3.12.7-r1)
(49/447) Installing python3-pycache-pyc0 (3.12.7-r1)
(50/447) Installing pyc (3.12.7-r1)
(51/447) Installing python3-pyc (3.12.7-r1)
(52/447) Installing py3-parsing (3.1.4-r0)
(53/447) Installing py3-parsing-pyc (3.1.4-r0)
(54/447) Installing py3-packaging (24.1-r0)
(55/447) Installing py3-packaging-pyc (24.1-r0)
(56/447) Installing linux-headers (6.6-r1)
(57/447) Installing libffi-dev (3.4.6-r0)
(58/447) Installing bsd-compat-headers (0.7.2-r6)
(59/447) Installing libformw (6.5_p20241006-r2)
(60/447) Installing libmenuw (6.5_p20241006-r2)
(61/447) Installing libncurses++ (6.5_p20241006-r2)
(62/447) Installing ncurses-dev (6.5_p20241006-r2)
(63/447) Installing libedit-dev (20240808.3.1-r0)
(64/447) Installing zlib-dev (1.3.1-r2)
(65/447) Installing libpcre2-16 (10.43-r0)
(66/447) Installing libpcre2-32 (10.43-r0)
(67/447) Installing pcre2-dev (10.43-r0)
(68/447) Installing libuuid (2.40.2-r3)
(69/447) Installing libfdisk (2.40.2-r3)
(70/447) Installing libsmartcols (2.40.2-r3)
(71/447) Installing sqlite (3.47.0-r0)
(72/447) Installing sqlite-dev (3.47.0-r0)
(73/447) Installing util-linux (2.40.2-r3)
(74/447) Installing dmesg (2.40.2-r3)
(75/447) Installing setarch (2.40.2-r3)
(76/447) Installing skalibs-libs (2.14.3.0-r0)
(77/447) Installing util-linux-misc (2.40.2-r3)
(78/447) Installing utmps-libs (0.1.2.3-r2)
(79/447) Installing linux-pam (1.6.1-r1)
(80/447) Installing runuser (2.40.2-r3)
(81/447) Installing mount (2.40.2-r3)
(82/447) Installing losetup (2.40.2-r3)
(83/447) Installing hexdump (2.40.2-r3)
(84/447) Installing uuidgen (2.40.2-r3)
(85/447) Installing blkid (2.40.2-r3)
(86/447) Installing sfdisk (2.40.2-r3)
(87/447) Installing mcookie (2.40.2-r3)
(88/447) Installing agetty (2.40.2-r3)
(89/447) Installing wipefs (2.40.2-r3)
(90/447) Installing cfdisk (2.40.2-r3)
(91/447) Installing umount (2.40.2-r3)
(92/447) Installing flock (2.40.2-r3)
(93/447) Installing lsblk (2.40.2-r3)
(94/447) Installing libcap-ng (0.8.5-r0)
(95/447) Installing setpriv (2.40.2-r3)
(96/447) Installing lscpu (2.40.2-r3)
(97/447) Installing logger (2.40.2-r3)
(98/447) Installing partx (2.40.2-r3)
(99/447) Installing fstrim (2.40.2-r3)
(100/447) Installing findmnt (2.40.2-r3)
(101/447) Installing util-linux-dev (2.40.2-r3)
(102/447) Installing glib-dev (2.82.2-r0)
(103/447) Installing xorgproto (2024.1-r0)
(104/447) Installing libxau-dev (1.0.11-r4)
(105/447) Installing xcb-proto (1.17.0-r0)
(106/447) Installing xcb-proto-pyc (1.17.0-r0)
(107/447) Installing libxdmcp-dev (1.1.5-r1)
(108/447) Installing libxcb-dev (1.16.1-r0)
(109/447) Installing xtrans (1.5.1-r0)
(110/447) Installing libx11-dev (1.8.10-r0)
(111/447) Installing libxext-dev (1.3.6-r2)
(112/447) Installing libxfixes (6.0.1-r4)
(113/447) Installing libxfixes-dev (6.0.1-r4)
(114/447) Installing libxi-dev (1.8.2-r0)
(115/447) Installing libxtst-dev (1.2.5-r0)
(116/447) Installing at-spi2-core-dev (2.54.0-r0)
(117/447) Installing libsigc++-dev (2.12.1-r0)
(118/447) Installing glibmm-dev (2.66.7-r0)
(119/447) Installing atkmm-dev (2.28.4-r1)
(120/447) Installing libSvtAv1Enc (2.2.1-r0)
(121/447) Installing aom-libs (3.10.0-r0)
(122/447) Installing hwdata-pci (0.388-r0)
(123/447) Installing libpciaccess (0.18.1-r0)
(124/447) Installing libdrm (2.4.123-r1)
(125/447) Installing wayland-libs-client (1.23.1-r0)
(126/447) Installing libva (2.22.0-r1)
(127/447) Installing libvdpau (1.5-r4)
(128/447) Installing ffmpeg-libavutil (6.1.1-r10)
(129/447) Installing libdav1d (1.5.0-r0)
(130/447) Installing openexr-libiex (3.1.13-r2)
(131/447) Installing openexr-libilmthread (3.1.13-r2)
(132/447) Installing imath (3.1.12-r0)
(133/447) Installing openexr-libopenexr (3.1.13-r2)
(134/447) Installing giflib (5.2.2-r0)
(135/447) Installing libhwy (1.0.7-r0)
(136/447) Installing libjpeg-turbo (3.0.4-r0)
(137/447) Installing lcms2 (2.16-r0)
(138/447) Installing libpng (1.6.44-r0)
(139/447) Installing libjxl (0.10.2-r0)
(140/447) Installing lame-libs (3.100-r5)
(141/447) Installing opus (1.5.2-r1)
(142/447) Installing rav1e-libs (0.7.1-r0)
(143/447) Installing soxr (0.1.3-r7)
(144/447) Installing ffmpeg-libswresample (6.1.1-r10)
(145/447) Installing libogg (1.3.5-r5)
(146/447) Installing libtheora (1.1.1-r18)
(147/447) Installing libvorbis (1.3.7-r2)
(148/447) Installing libvpx (1.14.1-r0)
(149/447) Installing libsharpyuv (1.4.0-r0)
(150/447) Installing libwebp (1.4.0-r0)
(151/447) Installing libwebpmux (1.4.0-r0)
(152/447) Installing x264-libs (0.164.3108-r0)
(153/447) Installing numactl (2.0.18-r0)
(154/447) Installing x265-libs (3.6-r0)
(155/447) Installing xvidcore (1.3.7-r2)
(156/447) Installing ffmpeg-libavcodec (6.1.1-r10)
(157/447) Installing libbluray (1.3.4-r1)
(158/447) Installing mpg123-libs (1.32.9-r0)
(159/447) Installing libopenmpt (0.7.10-r0)
(160/447) Installing mbedtls (3.6.2-r0)
(161/447) Installing librist (0.2.10-r1)
(162/447) Installing libsrt (1.5.3-r0)
(163/447) Installing libssh (0.11.1-r0)
(164/447) Installing libsodium (1.0.20-r0)
(165/447) Installing libzmq (4.3.5-r2)
(166/447) Installing ffmpeg-libavformat (6.1.1-r10)
(167/447) Installing libsamplerate (0.2.2-r3)
(168/447) Installing jack (1.9.22-r4)
(169/447) Installing libflac (1.4.3-r1)
(170/447) Installing libsndfile (1.2.2-r0)
(171/447) Installing aubio (0.4.9-r4)
(172/447) Installing aubio-dev (0.4.9-r4)
(173/447) Installing boost1.84-atomic (1.84.0-r2)
(174/447) Installing boost1.84-chrono (1.84.0-r2)
(175/447) Installing boost1.84-container (1.84.0-r2)
(176/447) Installing boost1.84-context (1.84.0-r2)
(177/447) Installing boost1.84-contract (1.84.0-r2)
(178/447) Installing boost1.84-coroutine (1.84.0-r2)
(179/447) Installing boost1.84-date_time (1.84.0-r2)
(180/447) Installing boost1.84-fiber (1.84.0-r2)
(181/447) Installing boost1.84-filesystem (1.84.0-r2)
(182/447) Installing boost1.84-graph (1.84.0-r2)
(183/447) Installing boost1.84-iostreams (1.84.0-r2)
(184/447) Installing boost1.84-thread (1.84.0-r2)
(185/447) Installing icu-data-full (74.2-r0)
(186/447) Installing icu-libs (74.2-r0)
(187/447) Installing boost1.84-locale (1.84.0-r2)
(188/447) Installing boost1.84-log (1.84.0-r2)
(189/447) Installing boost1.84-log_setup (1.84.0-r2)
(190/447) Installing boost1.84-math (1.84.0-r2)
(191/447) Installing boost1.84-prg_exec_monitor (1.84.0-r2)
(192/447) Installing boost1.84-program_options (1.84.0-r2)
(193/447) Installing boost1.84-python3 (1.84.0-r2)
(194/447) Installing boost1.84-random (1.84.0-r2)
(195/447) Installing boost1.84-regex (1.84.0-r2)
(196/447) Installing boost1.84-serialization (1.84.0-r2)
(197/447) Installing boost1.84-stacktrace_basic (1.84.0-r2)
(198/447) Installing boost1.84-stacktrace_noop (1.84.0-r2)
(199/447) Installing boost1.84-system (1.84.0-r2)
(200/447) Installing boost1.84-timer (1.84.0-r2)
(201/447) Installing boost1.84-type_erasure (1.84.0-r2)
(202/447) Installing boost1.84-unit_test_framework (1.84.0-r2)
(203/447) Installing boost1.84-url (1.84.0-r2)
(204/447) Installing boost1.84-wave (1.84.0-r2)
(205/447) Installing boost1.84-wserialization (1.84.0-r2)
(206/447) Installing boost1.84-json (1.84.0-r2)
(207/447) Installing boost1.84-nowide (1.84.0-r2)
(208/447) Installing boost1.84-libs (1.84.0-r2)
(209/447) Installing boost1.84 (1.84.0-r2)
(210/447) Installing icu (74.2-r0)
(211/447) Installing icu-dev (74.2-r0)
(212/447) Installing xz-dev (5.6.3-r0)
(213/447) Installing zstd (1.5.6-r1)
(214/447) Installing zstd-dev (1.5.6-r1)
(215/447) Installing boost1.84-dev (1.84.0-r2)
(216/447) Installing boost-dev (1.84.0-r2)
(217/447) Installing fftw-double-libs (3.3.10-r5)
(218/447) Installing fftw-long-double-libs (3.3.10-r5)
(219/447) Installing fftw-single-libs (3.3.10-r5)
(220/447) Installing fftw-dev (3.3.10-r5)
(221/447) Installing avahi-libs (0.8-r19)
(222/447) Installing nettle (3.10-r1)
(223/447) Installing libtasn1 (4.19.0-r2)
(224/447) Installing p11-kit (0.25.5-r2)
(225/447) Installing gnutls (3.8.5-r0)
(226/447) Installing eudev-libs (3.2.14-r5)
(227/447) Installing libunwind (1.8.1-r0)
(228/447) Installing yaml (0.2.5-r2)
(229/447) Installing libcamera (0.3.2-r0)
(230/447) Installing speexdsp (1.2.1-r2)
(231/447) Installing libuv (1.49.2-r0)
(232/447) Installing roc-toolkit-libs (0.4.0-r0)
(233/447) Installing pipewire-libs (1.2.6-r0)
(234/447) Installing portaudio (19.7.0-r2)
(235/447) Installing libasyncns (0.8-r4)
(236/447) Installing libltdl (2.4.7-r3)
(237/447) Installing orc (0.4.40-r1)
(238/447) Installing tdb-libs (1.4.10-r0)
(239/447) Installing libpulse (17.0-r4)
(240/447) Installing fluidsynth-libs (2.3.6-r0)
(241/447) Installing jack-dev (1.9.22-r4)
(242/447) Installing pipewire-dev (1.2.6-r0)
(243/447) Installing libpulse-mainloop-glib (17.0-r4)
(244/447) Installing pulseaudio-dev (17.0-r4)
(245/447) Installing libportaudiocxx (19.7.0-r2)
(246/447) Installing portaudio-dev (19.7.0-r2)
(247/447) Installing libhistory (8.2.13-r0)
(248/447) Installing readline-dev (8.2.13-r0)
(249/447) Installing opus-dev (1.5.2-r1)
(250/447) Installing libflac++ (1.4.3-r1)
(251/447) Installing libogg-dev (1.3.5-r5)
(252/447) Installing flac-dev (1.4.3-r1)
(253/447) Installing libvorbis-dev (1.3.7-r2)
(254/447) Installing libsndfile-dev (1.2.2-r0)
(255/447) Installing fluidsynth-dev (2.3.6-r0)
(256/447) Installing cairo-tools (1.18.2-r1)
(257/447) Installing freetype (2.13.3-r0)
(258/447) Installing fontconfig (2.15.0-r1)
(259/447) Installing expat (2.6.3-r0)
(260/447) Installing expat-dev (2.6.3-r0)
(261/447) Installing brotli (1.1.0-r2)
(262/447) Installing brotli-dev (1.1.0-r2)
(263/447) Installing libpng-dev (1.6.44-r0)
(264/447) Installing freetype-dev (2.13.3-r0)
(265/447) Installing fontconfig-dev (2.15.0-r1)
(266/447) Installing libxrender (0.9.11-r5)
(267/447) Installing libxrender-dev (0.9.11-r5)
(268/447) Installing pixman (0.43.4-r1)
(269/447) Installing pixman-dev (0.43.4-r1)
(270/447) Installing util-macros (1.20.1-r0)
(271/447) Installing xcb-util (0.4.1-r3)
(272/447) Installing xcb-util-dev (0.4.1-r3)
(273/447) Installing cairo (1.18.2-r1)
(274/447) Installing cairo-gobject (1.18.2-r1)
(275/447) Installing cairo-dev (1.18.2-r1)
(276/447) Installing perl (5.40.0-r3)
(277/447) Installing perl-http-date (6.06-r0)
(278/447) Installing perl-clone (0.47-r0)
(279/447) Installing perl-uri (5.28-r0)
(280/447) Installing perl-io-html (1.004-r1)
(281/447) Installing perl-encode-locale (1.05-r5)
(282/447) Installing perl-lwp-mediatypes (6.04-r3)
(283/447) Installing perl-http-message (7.00-r0)
(284/447) Installing perl-http-cookies (6.11-r0)
(285/447) Installing perl-net-http (6.23-r1)
(286/447) Installing perl-html-tagset (3.24-r0)
(287/447) Installing perl-html-parser (3.83-r0)
(288/447) Installing perl-file-listing (6.16-r0)
(289/447) Installing perl-www-robotrules (6.02-r5)
(290/447) Installing perl-http-negotiate (6.01-r5)
(291/447) Installing perl-try-tiny (0.32-r0)
(292/447) Installing perl-libwww (6.77-r0)
(293/447) Installing perl-xml-parser (2.47-r1)
(294/447) Installing intltool (0.51.0-r8)
(295/447) Installing libxdamage (1.1.6-r5)
(296/447) Installing libxdamage-dev (1.1.6-r5)
(297/447) Installing libxft (2.3.8-r3)
(298/447) Installing graphite2 (1.3.14-r6)
(299/447) Installing harfbuzz (9.0.0-r1)
(300/447) Installing fribidi (1.0.16-r0)
(301/447) Installing pango (1.54.0-r1)
(302/447) Installing pango-tools (1.54.0-r1)
(303/447) Installing fribidi-dev (1.0.16-r0)
(304/447) Installing harfbuzz-cairo (9.0.0-r1)
(305/447) Installing harfbuzz-gobject (9.0.0-r1)
(306/447) Installing harfbuzz-icu (9.0.0-r1)
(307/447) Installing harfbuzz-subset (9.0.0-r1)
(308/447) Installing graphite2-dev (1.3.14-r6)
(309/447) Installing harfbuzz-dev (9.0.0-r1)
(310/447) Installing libxft-dev (2.3.8-r3)
(311/447) Installing pango-dev (1.54.0-r1)
(312/447) Installing shared-mime-info (2.4-r0)
(313/447) Installing hicolor-icon-theme (0.18-r0)
(314/447) Installing tiff (4.7.0-r0)
(315/447) Installing gdk-pixbuf (2.42.12-r1)
(316/447) Installing gtk-update-icon-cache (3.24.43-r2)
(317/447) Installing libxcomposite (0.4.6-r5)
(318/447) Installing libxcursor (1.2.2-r1)
(319/447) Installing libxrandr (1.5.4-r1)
(320/447) Installing cups-libs (2.4.11-r0)
(321/447) Installing gtk+2.0 (2.24.33-r11)
(322/447) Installing libturbojpeg (3.0.4-r0)
(323/447) Installing libjpeg-turbo-dev (3.0.4-r0)
(324/447) Installing libtiffxx (4.7.0-r0)
(325/447) Installing libwebpdecoder (1.4.0-r0)
(326/447) Installing libwebpdemux (1.4.0-r0)
(327/447) Installing libwebp-dev (1.4.0-r0)
(328/447) Installing tiff-dev (4.7.0-r0)
(329/447) Installing gdk-pixbuf-dev (2.42.12-r1)
(330/447) Installing gtk+2.0-dev (2.24.33-r11)
(331/447) Installing cairomm (1.14.5-r0)
(332/447) Installing pangomm (2.46.4-r1)
(333/447) Installing cairomm-dev (1.14.5-r0)
(334/447) Installing pangomm-dev (2.46.4-r1)
(335/447) Installing gtkmm (2.24.5-r4)
(336/447) Installing gtkmm-dev (2.24.5-r4)
(337/447) Installing libusb (1.0.27-r0)
(338/447) Installing hidapi (0.14.0-r0)
(339/447) Installing hidapi-dev (0.14.0-r0)
(340/447) Installing py3-libxml2 (2.13.4-r3)
(341/447) Installing py3-libxml2-pyc (2.13.4-r3)
(342/447) Installing itstool (2.0.7-r2)
(343/447) Installing libarchive (3.7.7-r0)
(344/447) Installing openssl-dev (3.3.2-r3)
(345/447) Installing libarchive-dev (3.7.7-r0)
(346/447) Installing liblo (0.31-r1)
(347/447) Installing liblo-dev (0.31-r1)
(348/447) Installing libsamplerate-dev (0.2.2-r3)
(349/447) Installing libusb-dev (1.0.27-r0)
(350/447) Installing serd-libs (0.32.2-r0)
(351/447) Installing zix-libs (0.4.2-r0)
(352/447) Installing sord-libs (0.16.16-r0)
(353/447) Installing sratom (0.6.16-r0)
(354/447) Installing lilv-libs (0.24.24-r1)
(355/447) Installing py3-lxml (5.3.0-r0)
(356/447) Installing py3-lxml-pyc (5.3.0-r0)
(357/447) Installing py3-six (1.16.0-r9)
(358/447) Installing py3-six-pyc (1.16.0-r9)
(359/447) Installing py3-webencodings (0.5.1-r8)
(360/447) Installing py3-webencodings-pyc (0.5.1-r8)
(361/447) Installing py3-html5lib (1.1-r6)
(362/447) Installing py3-html5lib-pyc (1.1-r6)
(363/447) Installing py3-isodate (0.7.2-r0)
(364/447) Installing py3-isodate-pyc (0.7.2-r0)
(365/447) Installing py3-rdflib (7.1.1-r0)
(366/447) Installing py3-rdflib-pyc (7.1.1-r0)
(367/447) Installing py3-markdown (3.7-r0)
(368/447) Installing py3-markdown-pyc (3.7-r0)
(369/447) Installing py3-pygments (2.18.0-r0)
(370/447) Installing py3-pygments-pyc (2.18.0-r0)
(371/447) Installing lv2-specgen (1.18.10-r0)
(372/447) Installing lv2-dev (1.18.10-r0)
(373/447) Installing serd-dev (0.32.2-r0)
(374/447) Installing zix-dev (0.4.2-r0)
(375/447) Installing sord-dev (0.16.16-r0)
(376/447) Installing sratom-dev (0.6.16-r0)
(377/447) Installing lilv-dev (0.24.24-r1)
(378/447) Installing yajl (2.1.0-r9)
(379/447) Installing raptor2 (2.0.16-r1)
(380/447) Installing lrdf (0.6.1-r2)
(381/447) Installing lrdf-dev (0.6.1-r2)
(382/447) Installing c-ares-dev (1.34.2-r0)
(383/447) Installing libidn2-dev (2.3.7-r0)
(384/447) Installing libpsl-utils (0.21.5-r3)
(385/447) Installing libpsl-dev (0.21.5-r3)
(386/447) Installing nghttp2-dev (1.64.0-r0)
(387/447) Installing curl-dev (8.10.1-r0)
(388/447) Installing libxml2-dev (2.13.4-r3)
(389/447) Installing libxslt-dev (1.1.42-r1)
(390/447) Installing yajl-dev (2.1.0-r9)
(391/447) Installing raptor2-dev (2.0.16-r1)
(392/447) Installing rasqal (0.9.33-r3)
(393/447) Installing rasqal-dev (0.9.33-r3)
(394/447) Installing redland (1.0.17-r3)
(395/447) Installing redland-dev (1.0.17-r3)
(396/447) Installing rubberband-libs (3.3.0-r1)
(397/447) Installing rubberband-dev (3.3.0-r1)
(398/447) Installing qt5-qtbase (5.15.10_git20230714-r3)
(399/447) Installing xprop (1.2.7-r0)
(400/447) Installing libice (1.1.1-r6)
(401/447) Installing libsm (1.2.4-r4)
(402/447) Installing libxt (1.3.0-r5)
(403/447) Installing libxmu (1.2.1-r0)
(404/447) Installing xset (1.2.5-r1)
(405/447) Installing xdg-utils (1.2.1-r1)
(406/447) Installing llvm19-libs (19.1.2-r0)
(407/447) Installing libelf (0.191-r0)
(408/447) Installing mesa-glapi (24.2.6-r0)
(409/447) Installing libxshmfence (1.3.2-r6)
(410/447) Installing mesa (24.2.6-r0)
(411/447) Installing wayland-libs-server (1.23.1-r0)
(412/447) Installing libxxf86vm (1.1.5-r6)
(413/447) Installing mesa-gl (24.2.6-r0)
(414/447) Installing qt5-qtdeclarative (5.15.10_git20230629-r0)
(415/447) Installing wayland-libs-cursor (1.23.1-r0)
(416/447) Installing wayland-libs-egl (1.23.1-r0)
(417/447) Installing xkeyboard-config (2.43-r0)
(418/447) Installing libxkbcommon (1.7.0-r1)
(419/447) Installing qt5-qtwayland (5.15.10_git20230714-r0)
(420/447) Installing mesa-gbm (24.2.6-r0)
(421/447) Installing mesa-egl (24.2.6-r0)
(422/447) Installing libxinerama (1.1.5-r4)
(423/447) Installing libepoxy (1.5.10-r1)
(424/447) Installing gtk+3.0 (3.24.43-r2)
(425/447) Installing libevdev (1.13.3-r0)
(426/447) Installing mtdev (1.1.7-r0)
(427/447) Installing libinput-libs (1.26.2-r0)
(428/447) Installing xcb-util-wm (0.4.2-r0)
(429/447) Installing xcb-util-image (0.4.1-r0)
(430/447) Installing xcb-util-keysyms (0.4.1-r0)
(431/447) Installing xcb-util-renderutil (0.3.10-r0)
(432/447) Installing libxkbcommon-x11 (1.7.0-r1)
(433/447) Installing qt5-qtbase-x11 (5.15.10_git20230714-r3)
(434/447) Installing qt5-qtx11extras (5.15.10_git20230424-r1)
(435/447) Installing suil (0.10.20-r0)
(436/447) Installing suil-dev (0.10.20-r0)
(437/447) Installing libtag (1.13.1-r0)
(438/447) Installing libtag_c (1.13.1-r0)
(439/447) Installing taglib-dev (1.13.1-r0)
(440/447) Installing vamp-sdk-libs (2.10.0-r2)
(441/447) Installing vamp-sdk-dev (2.10.0-r2)
(442/447) Installing .makedepends-ardour (20241106.141952)
(443/447) Installing util-linux-openrc (2.40.2-r3)
(444/447) Installing agetty-openrc (0.55.1-r2)
(445/447) Installing perl-error (0.17029-r2)
(446/447) Installing perl-git (2.46.2-r0)
(447/447) Installing git-perl (2.46.2-r0)
Executing busybox-1.37.0-r6.trigger
Executing glib-2.82.2-r0.trigger
Executing shared-mime-info-2.4-r0.trigger
Executing gdk-pixbuf-2.42.12-r1.trigger
Executing gtk-update-icon-cache-3.24.43-r2.trigger
Executing gtk+2.0-2.24.33-r11.trigger
Executing gtk+3.0-3.24.43-r2.trigger
OK: 1098 MiB in 545 packages
>>> ardour: Cleaning up srcdir
>>> ardour: Cleaning up pkgdir
>>> ardour: Cleaning up tmpdir
>>> ardour: Fetching https://distfiles.alpinelinux.org/distfiles/v3.20/Ardour-8.10.0.tar.bz2
Connecting to distfiles.alpinelinux.org (172.105.82.32:443)
wget: server returned error: HTTP/1.1 404 Not Found
>>> ardour: Fetching https://community.ardour.org/src/Ardour-8.10.0.tar.bz2
Connecting to community.ardour.org (54.235.123.47:443)
saving to '/var/cache/distfiles/v3.21/Ardour-8.10.0.tar.bz2.part'
Ardour-8.10.0.tar.bz  46% |**************                  | 8111k  0:00:01 ETA
Ardour-8.10.0.tar.bz 100% |********************************| 16.9M  0:00:00 ETA
'/var/cache/distfiles/v3.21/Ardour-8.10.0.tar.bz2.part' saved
>>> ardour: Fetching https://distfiles.alpinelinux.org/distfiles/v3.20/Ardour-8.10.0.tar.bz2
>>> ardour: Checking sha512sums...
Ardour-8.10.0.tar.bz2: OK
0001-Unset-HAVE_GNU_FTW.patch: OK
>>> ardour: Unpacking /var/cache/distfiles/v3.21/Ardour-8.10.0.tar.bz2...
>>> ardour: 0001-Unset-HAVE_GNU_FTW.patch
patching file libs/tk/ydk/config.h
patching file libs/tk/ytk/config.h
/home/buildozer/aports/community/ardour/src/Ardour-8.10.0/waf:101: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.
  for x in t: t.extract(x)
Setting top to                           : /home/buildozer/aports/community/ardour/src/Ardour-8.10.0 
Setting out to                           : /home/buildozer/aports/community/ardour/src/Ardour-8.10.0/build 
Checking for 'gcc' (C compiler)          : gcc 
Checking for 'g++' (C++ compiler)        : g++ 

Global Configuration 
 * Install prefix                                    : /usr 
 * Debuggable build                                  : False 
 * Build documentation                               : False 

Ardour Configuration 
 * Will build against private GTK dependency stack   : no 
 * Will rely on libintl built into libc              : yes 
 * Will build against private Ardour dependency stack : no 
Checking for function 'dlopen' in dlfcn.h            : yes 
Checking for boost library >= 1.68                   : yes 
Checking for program 'pkg-config'                    : /usr/bin/pkg-config 
Checking for 'alsa'                                  : yes 
Checking for 'libpulse'                              : yes 
Checking for 'glib-2.0' >= 2.28                      : yes 
Checking for 'gthread-2.0' >= 2.2                    : yes 
Checking for 'glibmm-2.4' >= 2.32.0                  : yes 
Checking for 'sndfile' >= 1.0.18                     : yes 
Checking for 'giomm-2.4' >= 2.2                      : yes 
Checking for 'libcurl' >= 7.0.0                      : yes 
Checking for 'libarchive' >= 3.0.0                   : yes 
Checking for 'liblo' >= 0.26                         : yes 
Checking for 'taglib' >= 1.9                         : yes 
Checking for 'vamp-sdk' >= 2.1                       : yes 
Checking for 'vamp-hostsdk' >= 2.1                   : yes 
Checking for 'rubberband'                            : yes 
Checking for 'libusb-1.0' >= 1.0.16                  : yes 
Checking for rubberband >= 3.0.0                     : yes 
Checking for sndfile RF64=>RIFF support              : Found 
Checking for int128 support                          : lots of bits found. 
Checking for 'futex' syscall support                 : yes 
Checking for clang                                   : no 
Checking for compiler flags ['-std=c++11']           : yes 

Warning: you are building Ardour with SSE support even though your system does not support these instructions. (This may not be an error, especially if you are a package maintainer)
Checking for 'fftw3f'                                : yes 
Checking for 'libudev'                               : not found 
Checking for 'aubio' >= 0.3.2                        : yes 
Checking for 'aubio' >= 0.4.0                        : yes 
Checking for 'gobject-2.0'                           : yes 
Checking for 'gio-2.0' >= 2.2                        : yes 
Checking for 'libpng'                                : yes 
Checking for 'pango' >= 1.20                         : yes 
Checking for 'cairo' >= 1.12                         : yes 
Checking for 'pangocairo'                            : yes 
Checking for 'gio-unix-2.0'                          : yes 
Checking for 'xrandr' >= 1.2.99                      : not found 
Checking for 'xrandr' >= 1.5.0                       : not found 
Checking for header X11/extensions/Xinerama.h        : not found 
Checking for 'gmodule-2.0'                           : yes 
Checking for 'x11'                                   : yes 
Checking for 'xext'                                  : yes 
Checking for 'sigc++-2.0' >= 2.0                     : yes 
Checking for 'cairomm-1.0' >= 1.8.4                  : yes 
Checking for 'pangomm-1.4' >= 1.4                    : yes 
Checking for 'lv2' >= 1.16.0                         : yes 
Checking for 'libxml-2.0'                            : yes 
Checking for header execinfo.h                       : not found 
Checking for header unistd.h                         : yes 
Checking for function 'posix_memalign' in stdlib.h   : yes 
Checking for function 'getmntent' in mntent.h        : yes 
Checking for function 'localtime_r' in time.h        : yes 
Checking for 'cppunit' >= 1.12.0                     : not found 
Checking for header cwiid.h                          : not found 
You are missing the cwiid headers needed to compile wiimote support
Checking for 'libwebsockets' >= 2.0.0                : not found 
Checking for 'jack' >= 0.121.0                       : yes 
Checking for JACK metadata API                       : ok 
Checking for jack_port_rename()                      : ok 
Checking for program 'gas, gcc'                      : /usr/bin/gcc 
Checking for program 'ar'                            : /usr/bin/ar 
Checking for 'lrdf' >= 0.4.0                         : yes 
Checking for 'samplerate' >= 0.1.0                   : yes 
Checking for 'lv2' >= 1.2.0                          : yes 
Checking for 'lv2' >= 1.10.0                         : yes 
Checking for 'lv2' >= 1.17.2                         : yes 
Checking for 'lv2' >= 1.18.6                         : yes 
Checking for 'serd-0' >= 0.14.0                      : yes 
Checking for 'sord-0' >= 0.8.0                       : yes 
Checking for 'sratom-0' >= 0.2.0                     : yes 
Checking for 'lilv-0' >= 0.24.2                      : yes 
Checking for 'ogg' >= 1.1.2                          : yes 
Checking for 'flac' >= 1.2.1                         : yes 
Checking for 'fftw3f' >= 3.3.5                       : yes 
Checking for header sys/vfs.h                        : yes 
Checking for header sys/statvfs.h                    : yes 
Checking for header unistd.h                         : yes 
Checking for 'ioprio_set' syscall support            : no 
Checking for header boost/scoped_ptr.hpp             : yes 
Checking for header boost/ptr_container/ptr_list.hpp : yes 
Checking for 'samplerate' >= 0.1.7                   : yes 
Checking for header boost/format.hpp                 : yes 
Checking for 'lv2' >= 1.0.0                          : yes 
Checking for 'cairo' >= 1.12.0                       : yes 
Checking for 'gthread-2.0' >= 2.10.1                 : yes 
Checking for 'pangoft2' >= 1.36.8                    : yes 
Checking for 'fontconfig'                            : yes 
Checking for header stdio.h readline/readline.h      : yes 
 * build session-utils                               : yes 
Checking for 'dbus-1'                                : yes 
 * Build documentation                               : False 
 * Debuggable build                                  : False 
 * Export all symbols (backtrace)                    : False 
 * Install prefix                                    : /usr 
 * Strict compiler flags                             : [] 
 * Internal Shared Libraries                         : True 
 * Use YTK instead of GTK                            : True 
 * Use External Libraries                            : False 
 * Library exports hidden                            : True 
 * Free/Demo copy                                    : False 
 * ALSA DBus Reservation                             : True 
 * Architecture flags                                : None 
 * ARM NEON support                                  : False 
 * Aubio                                             : True 
 * AudioUnits                                        : False 
 * Build target                                      : none 
 * Canvas Test UI                                    : False 
 * Beatbox test app                                  : False 
 * CoreAudio                                         : False 
 * CoreAudio 10.5 compat                             : False 
 * Debug RT allocations                              : False 
 * Debug Symbols                                     : False 
 * Denormal exceptions                               : False 
 * Dr. Mingw                                         : False 
 * FLAC                                              : True 
 * FPU optimization                                  : True 
 * FPU AVX512F support                               : False 
 * FPU AVX/FMA support                               : False 
 * Futex Semaphore                                   : True 
 * Freedesktop files                                 : True 
 * G_ENABLE_DEBUG                                    : False 
 * I/O Priorty Set                                   : False 
 * Libjack linking                                   : link 
 * Libjack metadata                                  : True 
 * Lua Binding Doc                                   : False 
 * Lua Commandline Tool                              : True 
 * LV2 UI embedding                                  : True 
 * LV2 support                                       : True 
 * LV2 extensions                                    : True 
 * LXVST support                                     : True 
 * Mac VST support                                   : False 
 * NI-Maschine                                       : False 
 * OGG                                               : True 
 * Phone home                                        : False 
 * Process thread timing                             : False 
 * Program name                                      : Ardour 
 * Samplerate                                        : True 
 * PT format                                         : False 
 * PTW32 Semaphore                                   : False 
 * Threaded WaveViews                                : True 
 * Translation                                       : True 
 * Unit tests                                        : False 
 * Use LLD linker                                    : False 
 * VST3 support                                      : True 
 * Windows VST support                               : False 
 * Wiimote support                                   : False 
 * Windows key                                       : Mod4><Super 
 * PortAudio Backend                                 : False 
 * CoreAudio/Midi Backend                            : False 
 * ALSA Backend                                      : True 
 * Dummy backend                                     : True 
 * JACK Backend                                      : True 
 * PulseAudio Backend                                : True 
 * Buildstack                                        : -system- 
 * Mac i386 Architecture                             : False 
 * Mac ppc Architecture                              : False 
 * Mac arm64 Architecture                            : False 
 * C compiler flags                                  : ['-I/home/buildozer/aports/community/ardour/src/Ardour-8.10.0', '-Os', '-fstack-clash-protection', '-Wformat', '-Werror=format-security', '-DHAVE_RF64_RIFF', '-DCOMPILER_INT128_SUPPORT', '-DWAF_BUILD', '-DNDEBUG', '-fshow-column', '-O3', '-fomit-frame-pointer', '-ffast-math', '-fstrength-reduce', '-pipe', '-DLXVST_32BIT', '-Wall', '-Wpointer-arith', '-Wcast-qual', '-Wcast-align', '-Wno-unused-parameter', '-DBOOST_SYSTEM_NO_DEPRECATED', '-DBOOST_BIND_GLOBAL_PLACEHOLDERS', '-D_ISOC9X_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64', '-DPROGRAM_NAME="Ardour"', '-DPROGRAM_VERSION="8"', '-Wstrict-prototypes', '-Wmissing-prototypes'] 
 * C++ compiler flags                                : ['-I/home/buildozer/aports/community/ardour/src/Ardour-8.10.0', '-Os', '-fstack-clash-protection', '-Wformat', '-Werror=format-security', '-D_GLIBCXX_ASSERTIONS=1', '-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1', '-D_LIBCPP_ENABLE_HARDENED_MODE=1', '-DHAVE_RF64_RIFF', '-DCOMPILER_INT128_SUPPORT', '-DWAF_BUILD', '-DNDEBUG', '-fshow-column', '-O3', '-fomit-frame-pointer', '-ffast-math', '-fstrength-reduce', '-pipe', '-DLXVST_32BIT', '-Wall', '-Wpointer-arith', '-Wcast-qual', '-Wcast-align', '-Wno-unused-parameter', '-DBOOST_SYSTEM_NO_DEPRECATED', '-DBOOST_BIND_GLOBAL_PLACEHOLDERS', '-D_ISOC9X_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64', '-DPROGRAM_NAME="Ardour"', '-DPROGRAM_VERSION="8"', '-std=c++11', '-DBOOST_NO_AUTO_PTR', '-DBOOST_BIND_GLOBAL_PLACEHOLDERS', '-Woverloaded-virtual', '-Wno-unused-local-typedefs', '-Wno-deprecated-copy', '-D__STDC_LIMIT_MACROS', '-D__STDC_FORMAT_MACROS', '-DCANVAS_DEBUG', '-DBOOST_ERROR_CODE_HEADER_ONLY'] 
 * Linker flags                                      : ['-Wl,--as-needed,-O1,--sort-common'] 

'configure' finished successfully (21.648s)
Waf: Entering directory `/home/buildozer/aports/community/ardour/src/Ardour-8.10.0/build'
Using packaged revision
Generating po/cs.po
Generating po/zh.po
Generating po/de.po
Generating po/ca.po
Generating po/ko.po
Generating po/it.po
Generating po/ru.po
Generating po/fr.po
Generating po/eu.po
Generating po/ja.po
Generating /home/buildozer/aports/community/ardour/src/Ardour-8.10.0/gtk2_ardour/ardour.appdata.xml.in
[   1/1835] Compiling libs/pbd/pbd/signals.py
[   2/1835] Compiling tools/avahi.sh
[   3/1835] Creating build/libs/clearlooks-newer/engines
[   4/1835] Compiling libs/plugins/reasonablesynth.lv2/manifest.ttl.in
[   5/1835] Compiling libs/plugins/reasonablesynth.lv2/reasonablesynth.ttl.in
[   6/1835] Compiling libs/plugins/a-comp.lv2/manifest.ttl.in
[   7/1835] Compiling libs/plugins/a-comp.lv2/a-comp.ttl.in
[   8/1835] Compiling libs/plugins/a-comp.lv2/a-comp#stereo.ttl.in
[   9/1835] Compiling libs/plugins/a-comp.lv2/presets.ttl.in
[  10/1835] Compiling libs/plugins/a-exp.lv2/manifest.ttl.in
[  11/1835] Compiling libs/plugins/a-exp.lv2/a-exp.ttl.in
[  12/1835] Compiling libs/plugins/a-exp.lv2/a-exp#stereo.ttl.in
[  13/1835] Compiling libs/plugins/a-delay.lv2/manifest.ttl.in
[  14/1835] Compiling libs/plugins/a-delay.lv2/a-delay.ttl.in
[  15/1835] Compiling libs/plugins/a-delay.lv2/presets.ttl.in
[  16/1835] Compiling libs/plugins/a-eq.lv2/manifest.ttl.in
[  17/1835] Compiling libs/plugins/a-eq.lv2/a-eq.ttl.in
[  18/1835] Compiling libs/plugins/a-reverb.lv2/manifest.ttl.in
[  19/1835] Compiling libs/plugins/a-reverb.lv2/a-reverb.ttl.in
[  20/1835] Compiling libs/plugins/a-fluidsynth.lv2/manifest.ttl.in
[  21/1835] Compiling libs/plugins/a-fluidsynth.lv2/a-fluidsynth.ttl.in
[  22/1835] Compiling gtk2_ardour/ardev_common.sh.in
[  23/1835] Compiling gtk2_ardour/ardour.sh.in
[  24/1835] Compiling gtk2_ardour/clearlooks.rc.in
[  25/1835] Compiling gtk2_ardour/clearlooks.rc.in
[  26/1835] Compiling gtk2_ardour/default_ui_config.in
[  27/1835] Compiling gtk2_ardour/ardour.menus.in
[  28/1835] Compiling gtk2_ardour/ardour.desktop.in
[  29/1835] Compiling gtk2_ardour/ardour-mime-info.xml
[  30/1835] Compiling gtk2_ardour/ardour.appdata.xml.in
[  31/1835] Processing ardour.keys: gtk2_ardour/ardour.keys.in gtk2_ardour/mixer.bindings gtk2_ardour/processor_box.bindings gtk2_ardour/step_editing.bindings gtk2_ardour/monitor.bindings gtk2_ardour/trigger.bindings -> build/gtk2_ardour/ardour.keys
[  32/1835] Compiling luasession/ardour-lua.sh.in
[  33/1835] Compiling session_utils/ardour-util.sh.in
[  34/1835] Compiling libs/pbd/glib_event_source.cc
[  35/1835] Compiling libs/pbd/id.cc
[  36/1835] Compiling libs/pbd/textreceiver.cc
[  37/1835] Compiling libs/pbd/timer.cc
[  38/1835] Compiling libs/pbd/timing.cc
[  39/1835] Compiling libs/pbd/uuid.cc
[  40/1835] Compiling libs/pbd/whitespace.cc
[  41/1835] Compiling libs/pbd/xml++.cc
[  42/1835] Compiling libs/pbd/file_utils.cc
[  43/1835] Compiling libs/pbd/fpu.cc
[  44/1835] Compiling libs/pbd/tlsf.cc
[  45/1835] Compiling libs/pbd/transmitter.cc
[  46/1835] Compiling libs/pbd/undo.cc
[  47/1835] Compiling libs/pbd/utf8_utils.cc
[  48/1835] Compiling libs/pbd/file_archive.cc
[  49/1835] Compiling libs/pbd/ffs.cc
[  50/1835] Compiling libs/pbd/epa.cc
[  51/1835] Compiling libs/pbd/error.cc
[  52/1835] Compiling libs/pbd/demangle.cc
[  53/1835] Compiling libs/pbd/event_loop.cc
[  54/1835] Compiling libs/pbd/enums.cc
[  55/1835] Compiling libs/pbd/downloader.cc
[  56/1835] Compiling libs/pbd/enumwriter.cc
[  57/1835] Compiling libs/pbd/cartesian.cc
[  58/1835] Compiling libs/pbd/controllable.cc
[  59/1835] Compiling libs/pbd/cpus.cc
[  60/1835] Compiling libs/pbd/debug.cc
[  61/1835] Compiling libs/pbd/crossthread.cc
[  62/1835] Compiling libs/pbd/command.cc
[  63/1835] Compiling libs/pbd/configuration_variable.cc
[  64/1835] Compiling libs/pbd/convert.cc
[  65/1835] Compiling libs/pbd/inflater.cc
[  66/1835] Compiling libs/pbd/locale_guard.cc
[  67/1835] Compiling libs/pbd/reallocpool.cc
[  68/1835] Compiling libs/pbd/spinlock.cc
[  69/1835] Compiling libs/pbd/string_convert.cc
[  70/1835] Compiling libs/pbd/strsplit.cc
[  71/1835] Compiling libs/pbd/system_exec.cc
[  72/1835] Compiling libs/pbd/boost_debug.cc
[  73/1835] Compiling libs/pbd/base_ui.cc
[  74/1835] Compiling libs/pbd/basename.cc
[  75/1835] Compiling libs/pbd/strreplace.cc
[  76/1835] Compiling libs/pbd/stacktrace.cc
[  77/1835] Compiling libs/pbd/stateful_diff_command.cc
[  78/1835] Compiling libs/pbd/stateful.cc
[  79/1835] Compiling libs/pbd/receiver.cc
[  80/1835] Compiling libs/pbd/semutils.cc
[  81/1835] Compiling libs/pbd/signals.cc
[  82/1835] Compiling libs/pbd/shortpath.cc
[  83/1835] Compiling libs/pbd/resource.cc
[  84/1835] Compiling libs/pbd/search_path.cc
[  85/1835] Compiling libs/pbd/localtime_r.cc
[  86/1835] Compiling libs/pbd/pathexpand.cc
[  87/1835] Compiling libs/pbd/progress.cc
[  88/1835] Compiling libs/pbd/property_list.cc
[  89/1835] Compiling libs/pbd/pthread_utils.cc
[  90/1835] Compiling libs/pbd/pbd.cc
[  91/1835] Compiling libs/pbd/pcg_rand.cc
[  92/1835] Compiling libs/pbd/pool.cc
[  93/1835] Compiling libs/pbd/malign.cc
[  94/1835] Compiling libs/pbd/md5.cc
[  95/1835] Compiling libs/pbd/mountpoint.cc
[  96/1835] Compiling libs/pbd/openuri.cc
[  97/1835] Compiling libs/pbd/microseconds.cc
[  98/1835] Compiling libs/tk/ztk/atkobjectfactory.c
[  99/1835] Compiling libs/tk/ztk/atkobject.c
[ 100/1835] Compiling libs/tk/ztk/atkhypertext.c
[ 101/1835] Compiling libs/tk/ztk/atksocket.c
[ 102/1835] Compiling libs/tk/ztk/atkrange.c
[ 103/1835] Compiling libs/tk/ztk/atkrelationset.c
[ 104/1835] Compiling libs/tk/ztk/atkselection.c
[ 105/1835] Compiling libs/tk/ztk/atkregistry.c
[ 106/1835] Compiling libs/tk/ztk/atkrelation.c
[ 107/1835] Compiling libs/tk/ztk/atkhyperlink.c
[ 108/1835] Compiling libs/tk/ztk/atk-enum-types.c
[ 109/1835] Compiling libs/tk/ztk/atkaction.c
[ 110/1835] Compiling libs/tk/ztk/atkwindow.c
[ 111/1835] Compiling libs/tk/ztk/atkversion.c
[ 112/1835] Compiling libs/tk/ztk/atkcomponent.c
[ 113/1835] Compiling libs/tk/ztk/atkutil.c
../libs/pbd/reallocpool.cc: In constructor 'PBD::ReallocPool::ReallocPool(std::string, size_t)':
../libs/pbd/reallocpool.cc:89:26: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
   89 |         poolsize_t *in = (poolsize_t*) _pool;
      |                          ^~~~~~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc: In member function 'void PBD::ReallocPool::consolidate_ptr(char*)':
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:192:17: note: in expansion of macro 'SEGSIZ'
  192 |         if (p - SEGSIZ + sop >= _pool + _poolsize) {
      |                 ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:195:46: note: in expansion of macro 'SEGSIZ'
  195 |         poolsize_t *next = (poolsize_t*)(p - SEGSIZ + sop);
      |                                              ^~~~~~
../libs/pbd/reallocpool.cc:195:28: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  195 |         poolsize_t *next = (poolsize_t*)(p - SEGSIZ + sop);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:197:17: note: in expansion of macro 'SEGSIZ'
  197 |                 SEGSIZ = SEGSIZ + (*next) - sop;
      |                 ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:197:26: note: in expansion of macro 'SEGSIZ'
  197 |                 SEGSIZ = SEGSIZ + (*next) - sop;
      |                          ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:198:25: note: in expansion of macro 'SEGSIZ'
  198 |                 if (p - SEGSIZ + sop >= _pool + _poolsize) {
      |                         ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:201:41: note: in expansion of macro 'SEGSIZ'
  201 |                 next = (poolsize_t*)(p -SEGSIZ + sop);
      |                                         ^~~~~~
../libs/pbd/reallocpool.cc:201:24: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  201 |                 next = (poolsize_t*)(p -SEGSIZ + sop);
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc: In member function 'void* PBD::ReallocPool::_malloc(size_t)':
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:218:24: note: in expansion of macro 'SEGSIZ'
  218 |                 while (SEGSIZ > 0) {
      |                        ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:219:38: note: in expansion of macro 'SEGSIZ'
  219 |                         traversed += SEGSIZ + sop;
      |                                      ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:223:30: note: in expansion of macro 'SEGSIZ'
  223 |                         p += SEGSIZ + sop;
      |                              ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:230:43: note: in expansion of macro 'SEGSIZ'
  230 |                 const poolsize_t avail = -SEGSIZ;
      |                                           ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:236:25: note: in expansion of macro 'SEGSIZ'
  236 |                         SEGSIZ = -SEGSIZ;
      |                         ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:236:35: note: in expansion of macro 'SEGSIZ'
  236 |                         SEGSIZ = -SEGSIZ;
      |                                   ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:244:25: note: in expansion of macro 'SEGSIZ'
  244 |                         SEGSIZ = sp; // mark area as used.
      |                         ^~~~~~
../libs/pbd/reallocpool.cc:245:27: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  245 |                         *((poolsize_t*)(p + ss)) = ss - avail; // mark free space after.
      |                           ^~~~~~~~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:256:24: note: in expansion of macro 'SEGSIZ'
  256 |                 while (SEGSIZ < 0 && (-SEGSIZ) <= ss && (-SEGSIZ) != sp) {
      |                        ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:256:40: note: in expansion of macro 'SEGSIZ'
  256 |                 while (SEGSIZ < 0 && (-SEGSIZ) <= ss && (-SEGSIZ) != sp) {
      |                                        ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:256:59: note: in expansion of macro 'SEGSIZ'
  256 |                 while (SEGSIZ < 0 && (-SEGSIZ) <= ss && (-SEGSIZ) != sp) {
      |                                                           ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:257:39: note: in expansion of macro 'SEGSIZ'
  257 |                         traversed += -SEGSIZ + sop;
      |                                       ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:261:32: note: in expansion of macro 'SEGSIZ'
  261 |                         p += (-SEGSIZ) + sop;
      |                                ^~~~~~
../libs/pbd/reallocpool.cc:187:19: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  187 | #define SEGSIZ (*((poolsize_t*) p))
      |                   ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:264:37: note: in expansion of macro 'SEGSIZ'
  264 |                                 if (SEGSIZ < 0) consolidate_ptr (p);
      |                                     ^~~~~~
../libs/pbd/reallocpool.cc: In member function 'void PBD::ReallocPool::_shrink(void*, size_t)':
../libs/pbd/reallocpool.cc:293:11: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  293 |         *((poolsize_t*)(p + ss)) = ss - avail; // mark free space after.
      |           ^~~~~~~~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc: In member function 'void PBD::ReallocPool::dumpsegments()':
../libs/pbd/reallocpool.cc:345:26: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  345 |         poolsize_t *in = (poolsize_t*) p;
      |                          ^~~~~~~~~~~~~~~
../libs/pbd/reallocpool.cc:368:22: warning: cast from 'char*' to 'poolsize_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  368 |                 in = (poolsize_t*) p;
      |                      ^~~~~~~~~~~~~~~

[ 114/1835] Compiling libs/tk/ztk/atktable.c
[ 115/1835] Compiling libs/tk/ztk/atkimage.c
[ 116/1835] Compiling libs/tk/ztk/atkprivate.c
[ 117/1835] Compiling libs/tk/ztk/atkdocument.c
[ 118/1835] Compiling libs/tk/ztk/atkstreamablecontent.c
../libs/pbd/tlsf.cc: In function 'bhdr_t* process_area(void*, size_t)':
../libs/pbd/tlsf.cc:119:36: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  119 | #define GET_NEXT_BLOCK(_addr, _r) ((bhdr_t *) ((char *) (_addr) + (_r)))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:374:24: note: in expansion of macro 'GET_NEXT_BLOCK'
  374 |         b = (bhdr_t *) GET_NEXT_BLOCK(ib->ptr.buffer, ib->size & BLOCK_SIZE);
      |                        ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:119:36: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  119 | #define GET_NEXT_BLOCK(_addr, _r) ((bhdr_t *) ((char *) (_addr) + (_r)))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:377:14: note: in expansion of macro 'GET_NEXT_BLOCK'
  377 |         lb = GET_NEXT_BLOCK(b->ptr.buffer, b->size & BLOCK_SIZE);
      |              ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:380:14: warning: cast from 'u8_t*' {aka 'unsigned char*'} to 'area_info_t*' {aka 'area_info_struct*'} increases required alignment of target type [-Wcast-align]
  380 |         ai = (area_info_t *) ib->ptr.buffer;
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc: In constructor 'PBD::TLSF::TLSF(std::string, size_t)':
../libs/pbd/tlsf.cc:412:24: warning: cast from 'char*' to 'tlsf_t*' {aka 'TLSF_struct*'} increases required alignment of target type [-Wcast-align]
  412 |         tlsf_t *tlsf = (tlsf_t *) mem_pool;
      |                        ^~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:119:36: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  119 | #define GET_NEXT_BLOCK(_addr, _r) ((bhdr_t *) ((char *) (_addr) + (_r)))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:420:27: note: in expansion of macro 'GET_NEXT_BLOCK'
  420 |         ib = process_area(GET_NEXT_BLOCK
      |                           ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:119:36: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  119 | #define GET_NEXT_BLOCK(_addr, _r) ((bhdr_t *) ((char *) (_addr) + (_r)))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:422:13: note: in expansion of macro 'GET_NEXT_BLOCK'
  422 |         b = GET_NEXT_BLOCK(ib->ptr.buffer, ib->size & BLOCK_SIZE);
      |             ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:424:27: warning: cast from 'u8_t*' {aka 'unsigned char*'} to 'area_info_t*' {aka 'area_info_struct*'} increases required alignment of target type [-Wcast-align]
  424 |         tlsf->area_head = (area_info_t *) ib->ptr.buffer;
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc: In destructor 'PBD::TLSF::~TLSF()':
../libs/pbd/tlsf.cc:444:24: warning: cast from 'char*' to 'tlsf_t*' {aka 'TLSF_struct*'} increases required alignment of target type [-Wcast-align]
  444 |         tlsf_t *tlsf = (tlsf_t *) _mp;
      |                        ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc: In member function 'void* PBD::TLSF::_malloc(size_t)':
../libs/pbd/tlsf.cc:473:24: warning: cast from 'char*' to 'tlsf_t*' {aka 'TLSF_struct*'} increases required alignment of target type [-Wcast-align]
  473 |         tlsf_t *tlsf = (tlsf_t *) _mp;
      |                        ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:119:36: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  119 | #define GET_NEXT_BLOCK(_addr, _r) ((bhdr_t *) ((char *) (_addr) + (_r)))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:492:18: note: in expansion of macro 'GET_NEXT_BLOCK'
  492 |         next_b = GET_NEXT_BLOCK(b->ptr.buffer, b->size & BLOCK_SIZE);
      |                  ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:119:36: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  119 | #define GET_NEXT_BLOCK(_addr, _r) ((bhdr_t *) ((char *) (_addr) + (_r)))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:497:22: note: in expansion of macro 'GET_NEXT_BLOCK'
  497 |                 b2 = GET_NEXT_BLOCK(b->ptr.buffer, size);
      |                      ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc: In member function 'void PBD::TLSF::_free(void*)':
../libs/pbd/tlsf.cc:517:24: warning: cast from 'char*' to 'tlsf_t*' {aka 'TLSF_struct*'} increases required alignment of target type [-Wcast-align]
  517 |         tlsf_t *tlsf = (tlsf_t *) _mp;
      |                        ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:524:13: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  524 |         b = (bhdr_t *) ((char *) ptr - BHDR_OVERHEAD);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:119:36: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  119 | #define GET_NEXT_BLOCK(_addr, _r) ((bhdr_t *) ((char *) (_addr) + (_r)))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:531:17: note: in expansion of macro 'GET_NEXT_BLOCK'
  531 |         tmp_b = GET_NEXT_BLOCK(b->ptr.buffer, b->size & BLOCK_SIZE);
      |                 ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:119:36: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  119 | #define GET_NEXT_BLOCK(_addr, _r) ((bhdr_t *) ((char *) (_addr) + (_r)))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:547:17: note: in expansion of macro 'GET_NEXT_BLOCK'
  547 |         tmp_b = GET_NEXT_BLOCK(b->ptr.buffer, b->size & BLOCK_SIZE);
      |                 ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc: In member function 'void* PBD::TLSF::_realloc(void*, size_t)':
../libs/pbd/tlsf.cc:555:24: warning: cast from 'char*' to 'tlsf_t*' {aka 'TLSF_struct*'} increases required alignment of target type [-Wcast-align]
  555 |         tlsf_t *tlsf = (tlsf_t *) _mp;
      |                        ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:572:13: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  572 |         b = (bhdr_t *) ((char *) ptr - BHDR_OVERHEAD);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:119:36: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  119 | #define GET_NEXT_BLOCK(_addr, _r) ((bhdr_t *) ((char *) (_addr) + (_r)))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:573:18: note: in expansion of macro 'GET_NEXT_BLOCK'
  573 |         next_b = GET_NEXT_BLOCK(b->ptr.buffer, b->size & BLOCK_SIZE);
      |                  ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:119:36: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  119 | #define GET_NEXT_BLOCK(_addr, _r) ((bhdr_t *) ((char *) (_addr) + (_r)))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:582:34: note: in expansion of macro 'GET_NEXT_BLOCK'
  582 |                         next_b = GET_NEXT_BLOCK(next_b->ptr.buffer, next_b->size & BLOCK_SIZE);
      |                                  ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:119:36: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  119 | #define GET_NEXT_BLOCK(_addr, _r) ((bhdr_t *) ((char *) (_addr) + (_r)))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:589:33: note: in expansion of macro 'GET_NEXT_BLOCK'
  589 |                         tmp_b = GET_NEXT_BLOCK(b->ptr.buffer, new_size);
      |                                 ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:119:36: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  119 | #define GET_NEXT_BLOCK(_addr, _r) ((bhdr_t *) ((char *) (_addr) + (_r)))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:606:34: note: in expansion of macro 'GET_NEXT_BLOCK'
  606 |                         next_b = GET_NEXT_BLOCK(b->ptr.buffer, b->size & BLOCK_SIZE);
      |                                  ^~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:119:36: warning: cast from 'char*' to 'bhdr_t*' {aka 'bhdr_struct*'} increases required alignment of target type [-Wcast-align]
  119 | #define GET_NEXT_BLOCK(_addr, _r) ((bhdr_t *) ((char *) (_addr) + (_r)))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/pbd/tlsf.cc:612:41: note: in expansion of macro 'GET_NEXT_BLOCK'
  612 |                                 tmp_b = GET_NEXT_BLOCK(b->ptr.buffer, new_size);
      |                                         ^~~~~~~~~~~~~~

[ 119/1835] Compiling libs/tk/ztk/atknoopobjectfactory.c
[ 120/1835] Compiling libs/tk/ztk/atkplug.c
[ 121/1835] Compiling libs/tk/ztk/atkstateset.c
[ 122/1835] Compiling libs/tk/ztk/atkhyperlinkimpl.c
[ 123/1835] Compiling libs/tk/ztk/atknoopobject.c
[ 124/1835] Compiling libs/tk/ztk/atkeditabletext.c
[ 125/1835] Compiling libs/tk/ztk/atkstate.c
../libs/tk/ztk/atkrelation.c: In function 'atk_relation_new':
../libs/tk/ztk/atkrelation.c:254:3: warning: 'g_value_array_new' is deprecated: Use 'GArray' instead [-Wdeprecated-declarations]
  254 |   array = g_value_array_new (n_targets);
      |   ^~~~~
In file included from /usr/include/glib-2.0/glib-object.h:38,
                 from ../libs/tk/ztk/atkrelation.c:23:
/usr/include/glib-2.0/gobject/gvaluearray.h:62:17: note: declared here
   62 | GValueArray*    g_value_array_new            (guint              n_prealloced);
      |                 ^~~~~~~~~~~~~~~~~
../libs/tk/ztk/atkrelation.c:260:5: warning: 'g_value_array_append' is deprecated: Use 'GArray' instead [-Wdeprecated-declarations]
  260 |     array = g_value_array_append (array, value);
      |     ^~~~~
/usr/include/glib-2.0/gobject/gvaluearray.h:75:17: note: declared here
   75 | GValueArray*    g_value_array_append         (GValueArray       *value_array,
      |                 ^~~~~~~~~~~~~~~~~~~~
../libs/tk/ztk/atkrelation.c:270:3: warning: 'g_value_array_free' is deprecated: Use 'GArray' instead [-Wdeprecated-declarations]
  270 |   g_value_array_free (array);
      |   ^~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gvaluearray.h:65:17: note: declared here
   65 | void            g_value_array_free           (GValueArray       *value_array);
      |                 ^~~~~~~~~~~~~~~~~~
../libs/tk/ztk/atkrelation.c: In function 'atk_relation_get_ptr_array_from_value_array':
../libs/tk/ztk/atkrelation.c:476:7: warning: 'g_value_array_get_nth' is deprecated: Use 'GArray' instead [-Wdeprecated-declarations]
  476 |       value = g_value_array_get_nth (array, i);
      |       ^~~~~
/usr/include/glib-2.0/gobject/gvaluearray.h:58:17: note: declared here
   58 | GValue*         g_value_array_get_nth        (GValueArray       *value_array,
      |                 ^~~~~~~~~~~~~~~~~~~~~
../libs/tk/ztk/atkrelation.c: In function 'atk_relation_get_value_array_from_ptr_array':
../libs/tk/ztk/atkrelation.c:492:3: warning: 'g_value_array_new' is deprecated: Use 'GArray' instead [-Wdeprecated-declarations]
  492 |   return_array = g_value_array_new (array->len);
      |   ^~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gvaluearray.h:62:17: note: declared here
   62 | GValueArray*    g_value_array_new            (guint              n_prealloced);
      |                 ^~~~~~~~~~~~~~~~~
../libs/tk/ztk/atkrelation.c:498:7: warning: 'g_value_array_append' is deprecated: Use 'GArray' instead [-Wdeprecated-declarations]
  498 |       return_array = g_value_array_append (return_array, value);
      |       ^~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gvaluearray.h:75:17: note: declared here
   75 | GValueArray*    g_value_array_append         (GValueArray       *value_array,
      |                 ^~~~~~~~~~~~~~~~~~~~

[ 126/1835] Compiling libs/tk/ztk/atkmisc.c
In file included from ../libs/tk/ztk/atkhyperlink.c:22:
../libs/tk/ztk/atkhyperlink.c: In function 'atk_hyperlink_class_init':
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkhyperlink.c:128:58: note: in expansion of macro '_'
  128 |                                                          _("Selected Link"),
      |                                                          ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkhyperlink.c:129:58: note: in expansion of macro '_'
  129 |                                                          _("Specifies whether the AtkHyperlink object is selected"),
      |                                                          ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkhyperlink.c:135:54: note: in expansion of macro '_'
  135 |                                                      _("Number of Anchors"),
      |                                                      ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkhyperlink.c:136:54: note: in expansion of macro '_'
  136 |                                                      _("The number of anchors associated with the AtkHyperlink object"),
      |                                                      ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkhyperlink.c:144:54: note: in expansion of macro '_'
  144 |                                                      _("End index"),
      |                                                      ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkhyperlink.c:145:54: note: in expansion of macro '_'
  145 |                                                      _("The end index of the AtkHyperlink object"),
      |                                                      ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkhyperlink.c:153:54: note: in expansion of macro '_'
  153 |                                                      _("Start index"),
      |                                                      ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkhyperlink.c:154:54: note: in expansion of macro '_'
  154 |                                                      _("The start index of the AtkHyperlink object"),
      |                                                      ^

[ 127/1835] Compiling libs/tk/ztk/atktext.c
[ 128/1835] Compiling libs/tk/ztk/atkgobjectaccessible.c
[ 129/1835] Compiling libs/tk/ztk/atktablecell.c
[ 130/1835] Compiling libs/tk/ztk/atkvalue.c
[ 131/1835] Compiling libs/temporal/domain.cc
In file included from ../libs/tk/ztk/atkutil.c:23:
../libs/tk/ztk/atkmarshal.c:52:1: warning: no previous prototype for 'atk_marshal_VOID__INT_INT' [-Wmissing-prototypes]
   52 | atk_marshal_VOID__INT_INT (GClosure     *closure,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ztk/atkmarshal.c:89:1: warning: no previous prototype for 'atk_marshal_VOID__INT_INT_STRING' [-Wmissing-prototypes]
   89 | atk_marshal_VOID__INT_INT_STRING (GClosure     *closure,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ztk/atkmarshal.c:128:1: warning: no previous prototype for 'atk_marshal_VOID__INT_INT_INT_STRING' [-Wmissing-prototypes]
  128 | atk_marshal_VOID__INT_INT_INT_STRING (GClosure     *closure,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ztk/atkmarshal.c:169:1: warning: no previous prototype for 'atk_marshal_VOID__STRING_BOOLEAN' [-Wmissing-prototypes]
  169 | atk_marshal_VOID__STRING_BOOLEAN (GClosure     *closure,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ztk/atkmarshal.c:206:1: warning: no previous prototype for 'atk_marshal_VOID__DOUBLE_STRING' [-Wmissing-prototypes]
  206 | atk_marshal_VOID__DOUBLE_STRING (GClosure     *closure,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 132/1835] Compiling libs/temporal/timeline.cc
[ 133/1835] Compiling libs/temporal/time.cc
[ 134/1835] Compiling libs/temporal/tempo.cc
[ 135/1835] Compiling libs/temporal/beats.cc
../libs/tk/ztk/atkobject.c:276:1: warning: function declaration isn't a prototype [-Wstrict-prototypes]
  276 | initialize_role_names ()
      | ^~~~~~~~~~~~~~~~~~~~~
In file included from ../libs/tk/ztk/atkobject.c:26:
../libs/tk/ztk/atkobject.c: In function 'atk_object_class_init':
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:372:57: note: in expansion of macro '_'
  372 |                                                         _("Accessible Name"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:373:57: note: in expansion of macro '_'
  373 |                                                         _("Object instance\'s name formatted for assistive technology access"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:379:57: note: in expansion of macro '_'
  379 |                                                         _("Accessible Description"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:380:57: note: in expansion of macro '_'
  380 |                                                         _("Description of an object, formatted for assistive technology access"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:386:57: note: in expansion of macro '_'
  386 |                                                         _("Accessible Parent"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:387:57: note: in expansion of macro '_'
  387 |                                                         _("Parent of the current accessible as returned by atk_object_get_parent()"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:403:57: note: in expansion of macro '_'
  403 |                                                         _("Accessible Value"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:404:57: note: in expansion of macro '_'
  404 |                                                         _("Is used to notify that the value has changed"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:412:57: note: in expansion of macro '_'
  412 |                                                         _("Accessible Role"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:413:57: note: in expansion of macro '_'
  413 |                                                         _("The accessible role of this object"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:421:57: note: in expansion of macro '_'
  421 |                                                         _("Accessible Layer"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:422:57: note: in expansion of macro '_'
  422 |                                                         _("The accessible layer of this object"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:430:57: note: in expansion of macro '_'
  430 |                                                         _("Accessible MDI Value"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:431:57: note: in expansion of macro '_'
  431 |                                                         _("The accessible MDI value of this object"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:447:57: note: in expansion of macro '_'
  447 |                                                         _("Accessible Table Caption"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:448:57: note: in expansion of macro '_'
  448 |                                                         _("Is used to notify that the table caption has changed; this property should not be used. accessible-table-caption-object should be used instead"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:462:57: note: in expansion of macro '_'
  462 |                                                         _("Accessible Table Column Header"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:463:57: note: in expansion of macro '_'
  463 |                                                         _("Is used to notify that the table column header has changed"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:478:57: note: in expansion of macro '_'
  478 |                                                         _("Accessible Table Column Description"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:479:57: note: in expansion of macro '_'
  479 |                                                         _("Is used to notify that the table column description has changed"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:494:57: note: in expansion of macro '_'
  494 |                                                         _("Accessible Table Row Header"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:495:57: note: in expansion of macro '_'
  495 |                                                         _("Is used to notify that the table row header has changed"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:509:57: note: in expansion of macro '_'
  509 |                                                         _("Accessible Table Row Description"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:510:57: note: in expansion of macro '_'
  510 |                                                         _("Is used to notify that the table row description has changed"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:516:57: note: in expansion of macro '_'
  516 |                                                         _("Accessible Table Summary"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:517:57: note: in expansion of macro '_'
  517 |                                                         _("Is used to notify that the table summary has changed"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:523:57: note: in expansion of macro '_'
  523 |                                                         _("Accessible Table Caption Object"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:524:57: note: in expansion of macro '_'
  524 |                                                         _("Is used to notify that the table caption has changed"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:530:57: note: in expansion of macro '_'
  530 |                                                         _("Number of Accessible Hypertext Links"),
      |                                                         ^
/usr/include/glib-2.0/glib/gi18n-lib.h:32:21: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
   32 | #define  _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
      |                     ^
../libs/tk/ztk/atkobject.c:531:57: note: in expansion of macro '_'
  531 |                                                         _("The number of links which the current AtkHypertext has"),
      |                                                         ^
../libs/tk/ztk/atkobject.c: In function 'atk_object_real_set_property':
../libs/tk/ztk/atkobject.c:1317:9: warning: 'atk_value_set_current_value' is deprecated: Use 'atk_value_set_value' instead [-Wdeprecated-declarations]
 1317 |         atk_value_set_current_value (ATK_VALUE (accessible), value);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../libs/tk/ztk/ztk/atk/atk.h:55,
                 from ../libs/tk/ztk/atkobject.c:28:
../libs/tk/ztk/ztk/atk/atkvalue.h:136:10: note: declared here
  136 | gboolean atk_value_set_current_value  (AtkValue     *obj,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ztk/atkobject.c: In function 'atk_object_real_get_property':
../libs/tk/ztk/atkobject.c:1366:9: warning: 'atk_value_get_current_value' is deprecated: Use 'atk_value_get_value_and_text' instead [-Wdeprecated-declarations]
 1366 |         atk_value_get_current_value (ATK_VALUE (accessible), value);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ztk/ztk/atk/atkvalue.h:126:11: note: declared here
  126 | void      atk_value_get_current_value (AtkValue     *obj,
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 136/1835] Compiling libs/temporal/debug.cc
[ 137/1835] Compiling libs/temporal/bbt_time.cc
[ 138/1835] Compiling libs/temporal/superclock.cc
[ 139/1835] Compiling libs/temporal/range.cc
[ 140/1835] Compiling libs/temporal/enums.cc
[ 141/1835] Compiling libs/tk/ydk-pixbuf/gdk-pixbuf-enum-types.c
[ 142/1835] Compiling libs/tk/ydk-pixbuf/gdk-pixbuf-io.c
[ 143/1835] Compiling libs/tk/ydk-pixbuf/gdk-pixbuf-loader.c
[ 144/1835] Compiling libs/tk/ydk-pixbuf/gdk-pixbuf-simple-anim.c
[ 145/1835] Compiling libs/tk/ydk-pixbuf/gdk-pixbuf-scaled-anim.c
[ 146/1835] Compiling libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c
[ 147/1835] Compiling libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c
[ 148/1835] Compiling libs/tk/ydk-pixbuf/gdk-pixbuf-data.c
In file included from /usr/lib/glib-2.0/include/glibconfig.h:9,
                 from /usr/include/glib-2.0/glib/gtypes.h:34,
                 from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/glib/gi18n-lib.h:23,
                 from ../libs/tk/ztk/atkvalue.c:23:
../libs/tk/ztk/atkvalue.c: In function 'atk_value_set_current_value':
/usr/include/glib-2.0/gobject/gtype.h:2666:62: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2666 | #define _G_TYPE_CHV(vl)                 (g_type_check_value ((GValue*) vl))
      |                                                              ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ztk/atkvalue.c:510:3: note: in expansion of macro 'g_return_val_if_fail'
  510 |   g_return_val_if_fail (G_IS_VALUE (value), FALSE);
      |   ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:622:66: note: in expansion of macro '_G_TYPE_CHV'
  622 | #define G_TYPE_CHECK_VALUE(value)                               (_G_TYPE_CHV ((value)))
      |                                                                  ^~~~~~~~~~~
/usr/include/glib-2.0/gobject/gvalue.h:53:42: note: in expansion of macro 'G_TYPE_CHECK_VALUE'
   53 | #define G_IS_VALUE(value)               (G_TYPE_CHECK_VALUE (value))
      |                                          ^~~~~~~~~~~~~~~~~~
../libs/tk/ztk/atkvalue.c:510:25: note: in expansion of macro 'G_IS_VALUE'
  510 |   g_return_val_if_fail (G_IS_VALUE (value), FALSE);
      |                         ^~~~~~~~~~
../libs/tk/ztk/atkvalue.c: At top level:
../libs/tk/ztk/atkvalue.c:682:1: warning: function declaration isn't a prototype [-Wstrict-prototypes]
  682 | initialize_value_type_names ()
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 149/1835] Compiling libs/tk/ydk-pixbuf/io-pixdata.c
[ 150/1835] Compiling libs/tk/ydk-pixbuf/io-xpm.c
[ 151/1835] Compiling libs/tk/ydk-pixbuf/io-xbm.c
[ 152/1835] Compiling libs/tk/ydk-pixbuf/pixops/pixops.c
[ 153/1835] Compiling libs/tk/ydk-pixbuf/io-png.c
[ 154/1835] Compiling libs/tk/ydk-pixbuf/gdk-pixdata.c
[ 155/1835] Compiling libs/tk/ydk-pixbuf/gdk-pixbuf.c
[ 156/1835] Compiling libs/tk/ydk-pixbuf/gdk-pixbuf-util.c
../libs/tk/ztk/atktext.c: In function 'atk_text_real_get_bounded_ranges':
../libs/tk/ztk/atktext.c:1414:3: warning: 'atk_text_get_text_at_offset' is deprecated: Use 'atk_text_get_string_at_offset' instead [-Wdeprecated-declarations]
 1414 |   line = atk_text_get_text_at_offset (text, bounds_min_offset,
      |   ^~~~
../libs/tk/ztk/atktext.c:465:1: note: declared here
  465 | atk_text_get_text_at_offset (AtkText          *text,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ztk/atktext.c:1418:3: warning: 'atk_text_get_text_at_offset' is deprecated: Use 'atk_text_get_string_at_offset' instead [-Wdeprecated-declarations]
 1418 |   line = atk_text_get_text_at_offset (text, bounds_max_offset,
      |   ^~~~
../libs/tk/ztk/atktext.c:465:1: note: declared here
  465 | atk_text_get_text_at_offset (AtkText          *text,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 157/1835] Compiling libs/tk/ydk/gdkaliasdef.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf-scaled-anim.c:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf-scaled-anim.c:23:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scaled-anim.c:177:11: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  177 |           const GTimeVal     *start_time)
      |           ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scaled-anim.c:247:10: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  247 |          const GTimeVal         *current_time)
      |          ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[ 158/1835] Compiling libs/tk/ydk/x11/gdkasync.c
[ 159/1835] Compiling libs/tk/ydk/gdkoffscreenwindow.c
[ 160/1835] Compiling libs/tk/ydk/x11/gdkimage-x11.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf-simple-anim.c:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf-simple-anim.c:27:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-simple-anim.c:83:9: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   83 |         GTimeVal start_time;
      |         ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-simple-anim.c:84:9: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   84 |         GTimeVal current_time;
      |         ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-simple-anim.c:108:42: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  108 |                                          const GTimeVal     *start_time);
      |                                          ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-simple-anim.c:242:11: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  242 |           const GTimeVal    *start_time)
      |           ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-simple-anim.c:266:47: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  266 |                                               const GTimeVal         *current_time);
      |                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-simple-anim.c:307:10: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  307 |          const GTimeVal         *current_time)
      |          ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[ 161/1835] Compiling libs/tk/ydk/x11/gdkkeys-x11.c
[ 162/1835] Compiling libs/tk/ydk/gdkregion-generic.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf-enum-types.c:4:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:29:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[ 163/1835] Compiling libs/tk/ydk/x11/gdkinput.c
[ 164/1835] Compiling libs/tk/ydk/x11/gdkim-x11.c
[ 165/1835] Compiling libs/tk/ydk/gdkrectangle.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf-data.c:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:29:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[ 166/1835] Compiling libs/tk/ydk/x11/gdkscreen-x11.c
[ 167/1835] Compiling libs/tk/ydk/x11/gdkproperty-x11.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-loader.h:34,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:33,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf-loader.c:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:30:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[ 168/1835] Compiling libs/tk/ydk/gdkrgb.c
[ 169/1835] Compiling libs/tk/ydk/x11/gdkpixmap-x11.c
[ 170/1835] Compiling libs/tk/ydk/gdkcursor.c
[ 171/1835] Compiling libs/tk/ydk/x11/gdkspawn-x11.c
[ 172/1835] Compiling libs/tk/ydk/gdkevents.c
[ 173/1835] Compiling libs/tk/ydk/gdkmarshalers.c
[ 174/1835] Compiling libs/tk/ydk/x11/gdkselection-x11.c
[ 175/1835] Compiling libs/tk/ydk/gdkdisplaymanager.c
[ 176/1835] Compiling libs/tk/ydk/x11/gdkxid.c
[ 177/1835] Compiling libs/tk/ydk/gdkcolor.c
[ 178/1835] Compiling libs/tk/ydk/gdkdisplay.c
[ 179/1835] Compiling libs/tk/ydk/gdkcairo.c
[ 180/1835] Compiling libs/tk/ydk/gdkpixmap.c
[ 181/1835] Compiling libs/tk/ydk/gdkenumtypes.c
[ 182/1835] Compiling libs/tk/ydk/gdk.c
[ 183/1835] Compiling libs/tk/ydk/gdkdraw.c
[ 184/1835] Compiling libs/tk/ydk/gdkdnd.c
[ 185/1835] Compiling libs/tk/ydk/gdkapplaunchcontext.c
[ 186/1835] Compiling libs/tk/ydk/x11/gdkmain-x11.c
[ 187/1835] Compiling libs/tk/ydk/x11/gdkvisual-x11.c
[ 188/1835] Compiling libs/tk/ydk/x11/xsettings-common.c
[ 189/1835] Compiling libs/tk/ydk/x11/gdkxftdefaults.c
[ 190/1835] Compiling libs/tk/ydk/x11/gdkwindow-x11.c
[ 191/1835] Compiling libs/tk/ydk/x11/xsettings-client.c
[ 192/1835] Compiling libs/tk/ydk/gdkglobals.c
[ 193/1835] Compiling libs/tk/ydk/x11/gdkinput-none.c
[ 194/1835] Compiling libs/tk/ydk/gdkfont.c
[ 195/1835] Compiling libs/tk/ydk/gdkkeys.c
[ 196/1835] Compiling libs/tk/ydk/gdkimage.c
[ 197/1835] Compiling libs/tk/ydk/x11/gdkgc-x11.c
[ 198/1835] Compiling libs/tk/ydk/gdkpixbuf-drawable.c
[ 199/1835] Compiling libs/tk/ydk/gdkpango.c
[ 200/1835] Compiling libs/tk/ydk/x11/gdkdrawable-x11.c
[ 201/1835] Compiling libs/tk/ydk/gdkkeyuni.c
[ 202/1835] Compiling libs/tk/ydk/gdkpolyreg-generic.c
[ 203/1835] Compiling libs/tk/ydk/gdkpixbuf-render.c
[ 204/1835] Compiling libs/tk/ydk/gdkselection.c
[ 205/1835] Compiling libs/tk/ydk/x11/gdkdisplay-x11.c
[ 206/1835] Compiling libs/tk/ydk/gdkvisual.c
[ 207/1835] Compiling libs/tk/ydk/gdkgc.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-loader.h:34,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:33,
                 from ../libs/tk/ydk-pixbuf/io-pixdata.c:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:30:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from /usr/include/glib-2.0/glib/giochannel.h:36,
                 from /usr/include/glib-2.0/glib.h:56:
../libs/tk/ydk-pixbuf/io-pixdata.c: In function 'pixdata_image_load_increment':
../libs/tk/ydk-pixbuf/io-pixdata.c:120:39: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  120 |   g_string_append_len (context->data, (char *)buf, size);
      |                                       ^
/usr/include/glib-2.0/glib/gstring.h:251:37: note: in definition of macro 'g_string_append_len'
  251 |   g_string_append_len_inline (gstr, val, len)
      |                                     ^~~
../libs/tk/ydk-pixbuf/io-pixdata.c: At top level:
../libs/tk/ydk-pixbuf/io-pixdata.c:158:37: warning: no previous prototype for '_gdk_pixbuf__pixdata_fill_vtable' [-Wmissing-prototypes]
  158 | #define MODULE_ENTRY(function) void _gdk_pixbuf__pixdata_ ## function
      |                                     ^~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-pixdata.c:160:1: note: in expansion of macro 'MODULE_ENTRY'
  160 | MODULE_ENTRY (fill_vtable) (GdkPixbufModule * module)
      | ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-pixdata.c:158:37: warning: no previous prototype for '_gdk_pixbuf__pixdata_fill_info' [-Wmissing-prototypes]
  158 | #define MODULE_ENTRY(function) void _gdk_pixbuf__pixdata_ ## function
      |                                     ^~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-pixdata.c:167:1: note: in expansion of macro 'MODULE_ENTRY'
  167 | MODULE_ENTRY (fill_info) (GdkPixbufFormat * info)
      | ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-pixdata.c: In function '_gdk_pixbuf__pixdata_fill_info':
../libs/tk/ydk-pixbuf/io-pixdata.c:183:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  183 |         info->signature = (GdkPixbufModulePattern *) signature;
      |                           ^
../libs/tk/ydk-pixbuf/io-pixdata.c:185:28: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  185 |         info->mime_types = (gchar **) mime_types;
      |                            ^
../libs/tk/ydk-pixbuf/io-pixdata.c:186:28: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  186 |         info->extensions = (gchar **) extensions;
      |                            ^

[ 208/1835] Compiling libs/tk/ydk/x11/gdkapplaunchcontext-x11.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-loader.h:34,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:33,
                 from ../libs/tk/ydk-pixbuf/io-xbm.c:38:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:30:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/io-xbm.c:470:37: warning: no previous prototype for '_gdk_pixbuf__xbm_fill_vtable' [-Wmissing-prototypes]
  470 | #define MODULE_ENTRY(function) void _gdk_pixbuf__xbm_ ## function
      |                                     ^~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-xbm.c:473:1: note: in expansion of macro 'MODULE_ENTRY'
  473 | MODULE_ENTRY (fill_vtable) (GdkPixbufModule *module)
      | ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-xbm.c:470:37: warning: no previous prototype for '_gdk_pixbuf__xbm_fill_info' [-Wmissing-prototypes]
  470 | #define MODULE_ENTRY(function) void _gdk_pixbuf__xbm_ ## function
      |                                     ^~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-xbm.c:481:1: note: in expansion of macro 'MODULE_ENTRY'
  481 | MODULE_ENTRY (fill_info) (GdkPixbufFormat *info)
      | ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-xbm.c: In function '_gdk_pixbuf__xbm_fill_info':
../libs/tk/ydk-pixbuf/io-xbm.c:498:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  498 |         info->signature = (GdkPixbufModulePattern *) signature;
      |                           ^
../libs/tk/ydk-pixbuf/io-xbm.c:500:28: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  500 |         info->mime_types = (gchar **) mime_types;
      |                            ^
../libs/tk/ydk-pixbuf/io-xbm.c:501:28: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  501 |         info->extensions = (gchar **) extensions;
      |                            ^

[ 209/1835] Compiling libs/tk/ydk/x11/gdkgeometry-x11.c
[ 210/1835] Compiling libs/tk/ydk/gdkwindowimpl.c
[ 211/1835] Compiling libs/tk/ydk/gdkwindow.c
[ 212/1835] Compiling libs/tk/ydk/x11/gdkfont-x11.c
[ 213/1835] Compiling libs/tk/ydk/x11/gdkdnd-x11.c
[ 214/1835] Compiling libs/tk/ydk/gdkscreen.c
[ 215/1835] Compiling libs/tk/ydk/x11/gdkcolor-x11.c
[ 216/1835] Compiling libs/tk/ydk/x11/gdkevents-x11.c
[ 217/1835] Compiling libs/tk/ydk/x11/gdkcursor-x11.c
[ 218/1835] Compiling libs/tk/ydk/x11/gdkglobals-x11.c
[ 219/1835] Compiling libs/evoral/libsmf/smf_load.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-loader.h:34,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:33,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf-io.c:36:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf-io.c:33:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[ 220/1835] Compiling libs/evoral/libsmf/smf_save.c
[ 221/1835] Compiling libs/evoral/libsmf/smf_decode.c
[ 222/1835] Compiling libs/evoral/libsmf/smf_tempo.c
[ 223/1835] Compiling libs/evoral/libsmf/smf.c
[ 224/1835] Compiling libs/evoral/SMF.cc
[ 225/1835] Compiling libs/evoral/Event.cc
[ 226/1835] Compiling libs/evoral/ControlList.cc
[ 227/1835] Compiling libs/evoral/Sequence.cc
[ 228/1835] Compiling libs/evoral/Curve.cc
[ 229/1835] Compiling libs/evoral/Control.cc
[ 230/1835] Compiling libs/evoral/Note.cc
[ 231/1835] Compiling libs/evoral/ControlSet.cc
[ 232/1835] Compiling libs/evoral/debug.cc
[ 233/1835] Compiling libs/tk/ytk/gtkframe.c
[ 234/1835] Compiling libs/tk/ytk/gtkfilechoosersettings.c
[ 235/1835] Compiling libs/tk/ytk/gtkbin.c
[ 236/1835] Compiling libs/tk/ytk/gtkwindow-decorate.c
[ 237/1835] Compiling libs/tk/ytk/gtkentrybuffer.c
[ 238/1835] Compiling libs/tk/ytk/gtktreemodelfilter.c
[ 239/1835] Compiling libs/tk/ytk/gtkvpaned.c
[ 240/1835] Compiling libs/tk/ytk/gtktreestore.c
[ 241/1835] Compiling libs/tk/ytk/gtkvscale.c
[ 242/1835] Compiling libs/tk/ytk/gtktreeviewcolumn.c
[ 243/1835] Compiling libs/tk/ytk/gtkexpander.c
[ 244/1835] Compiling libs/tk/ytk/gtktypebuiltins.c
[ 245/1835] Compiling libs/tk/ytk/gtkcolorseldialog.c
[ 246/1835] Compiling libs/tk/ytk/gtkfilechooserdefault.c
[ 247/1835] Compiling libs/tk/ytk/gtkvbox.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-loader.h:34,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:33,
                 from ../libs/tk/ydk-pixbuf/io-xpm.c:33:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/tk/ydk-pixbuf/io-xpm.c:28:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/io-xpm.c:812:37: warning: no previous prototype for '_gdk_pixbuf__xpm_fill_vtable' [-Wmissing-prototypes]
  812 | #define MODULE_ENTRY(function) void _gdk_pixbuf__xpm_ ## function
      |                                     ^~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-xpm.c:815:1: note: in expansion of macro 'MODULE_ENTRY'
  815 | MODULE_ENTRY (fill_vtable) (GdkPixbufModule *module)
      | ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-xpm.c:812:37: warning: no previous prototype for '_gdk_pixbuf__xpm_fill_info' [-Wmissing-prototypes]
  812 | #define MODULE_ENTRY(function) void _gdk_pixbuf__xpm_ ## function
      |                                     ^~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-xpm.c:824:1: note: in expansion of macro 'MODULE_ENTRY'
  824 | MODULE_ENTRY (fill_info) (GdkPixbufFormat *info)
      | ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-xpm.c: In function '_gdk_pixbuf__xpm_fill_info':
../libs/tk/ydk-pixbuf/io-xpm.c:840:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  840 |         info->signature = (GdkPixbufModulePattern *) signature;
      |                           ^
../libs/tk/ydk-pixbuf/io-xpm.c:842:28: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  842 |         info->mime_types = (gchar **) mime_types;
      |                            ^
../libs/tk/ydk-pixbuf/io-xpm.c:843:28: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  843 |         info->extensions = (gchar **) extensions;
      |                            ^

[ 248/1835] Compiling libs/tk/ytk/gtktreeview.c
[ 249/1835] Compiling libs/tk/ytk/gtkbuilder.c
[ 250/1835] Compiling libs/tk/ytk/gtktreemodelsort.c
[ 251/1835] Compiling libs/tk/ytk/gtkbutton.c
[ 252/1835] Compiling libs/tk/ytk/gtktreesortable.c
[ 253/1835] Compiling libs/tk/ytk/gtktreeselection.c
In file included from ../libs/pbd/pbd/downloader.h:25,
                 from ../libs/pbd/downloader.cc:29:
../libs/pbd/downloader.cc: In member function 'void PBD::Downloader::download()':
../libs/pbd/downloader.cc:154:50: warning: 'CURLINFO_CONTENT_LENGTH_DOWNLOAD' is deprecated: since 7.55.0. Use CURLINFO_CONTENT_LENGTH_DOWNLOAD_T [-Wdeprecated-declarations]
  154 |                         curl_easy_getinfo (curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &dsize);
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2892:3: note: declared here
 2892 |   CURLINFO_CONTENT_LENGTH_DOWNLOAD
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 254/1835] Compiling libs/tk/ytk/gtktoolitemgroup.c
[ 255/1835] Compiling libs/tk/ytk/gtktooltips.c
[ 256/1835] Compiling libs/tk/ytk/gtktreednd.c
[ 257/1835] Compiling libs/tk/ytk/gtkbuildable.c
[ 258/1835] Compiling libs/tk/ytk/gtkvruler.c
[ 259/1835] Compiling libs/tk/ytk/gtktreemodel.c
[ 260/1835] Compiling libs/tk/ytk/gtkbox.c
[ 261/1835] Compiling libs/tk/ytk/gtkwidget.c
In file included from ../libs/pbd/file_archive.cc:34:
../libs/pbd/file_archive.cc: In function 'void* get_url(void*)':
../libs/pbd/file_archive.cc:75:58: warning: 'CURLINFO_CONTENT_LENGTH_DOWNLOAD' is deprecated: since 7.55.0. Use CURLINFO_CONTENT_LENGTH_DOWNLOAD_T [-Wdeprecated-declarations]
   75 |                 if (CURLE_OK == curl_easy_getinfo (curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &content_length) && content_length > 0) {
      |                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2892:3: note: declared here
 2892 |   CURLINFO_CONTENT_LENGTH_DOWNLOAD
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 262/1835] Compiling libs/tk/ytk/gtktreedatalist.c
[ 263/1835] Compiling libs/tk/ytk/gtktoolpalette.c
[ 264/1835] Compiling libs/tk/ytk/gtktoolshell.c
[ 265/1835] Compiling libs/tk/ytk/gtktooltip.c
[ 266/1835] Compiling libs/tk/ytk/gtkdialog.c
[ 267/1835] Compiling libs/tk/ytk/gtktextiter.c
[ 268/1835] Compiling libs/tk/ytk/gtkcomboboxentry.c
[ 269/1835] Compiling libs/tk/ytk/gtkfilefilter.c
In function 'smf_extend',
    inlined from 'track_extend' at ../libs/evoral/libsmf/smf_save.c:130:8,
    inlined from 'track_append' at ../libs/evoral/libsmf/smf_save.c:150:9:
../libs/evoral/libsmf/smf_save.c:75:101: warning: pointer 'previous_file_buffer' may be used after 'realloc' [-Wuse-after-free]
   75 |                         track->file_buffer = (char *)track->file_buffer + ((char *)smf->file_buffer - previous_file_buffer);
      |                                                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../libs/evoral/libsmf/smf_save.c:63:28: note: call to 'realloc' here
   63 |         smf->file_buffer = realloc(smf->file_buffer, smf->file_buffer_length);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function 'smf_extend',
    inlined from 'smf_append' at ../libs/evoral/libsmf/smf_save.c:90:9,
    inlined from 'write_mthd_header' at ../libs/evoral/libsmf/smf_save.c:115:10,
    inlined from 'smf_save' at ../libs/evoral/libsmf/smf_save.c:654:6:
../libs/evoral/libsmf/smf_save.c:75:101: warning: pointer 'previous_file_buffer' may be used after 'realloc' [-Wuse-after-free]
   75 |                         track->file_buffer = (char *)track->file_buffer + ((char *)smf->file_buffer - previous_file_buffer);
      |                                                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../libs/evoral/libsmf/smf_save.c:63:28: note: call to 'realloc' here
   63 |         smf->file_buffer = realloc(smf->file_buffer, smf->file_buffer_length);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 270/1835] Compiling libs/tk/ytk/gtktextutil.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-loader.h:34,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:33,
                 from ../libs/tk/ydk-pixbuf/io-png.c:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:30:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/io-png.c: In function 'gdk_pixbuf__png_image_load':
../libs/tk/ydk-pixbuf/io-png.c:342:32: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  342 |                                (png_charpp) &icc_profile_title, &compression_type,
      |                                ^
../libs/tk/ydk-pixbuf/io-png.c:343:32: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  343 |                                (png_bytepp) &icc_profile, (png_uint_32*) &icc_profile_size);
      |                                ^
../libs/tk/ydk-pixbuf/io-png.c: In function 'gdk_pixbuf__png_image_load_increment':
../libs/tk/ydk-pixbuf/io-png.c:538:34: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  538 |                                  (guchar*) buf, size);
      |                                  ^
../libs/tk/ydk-pixbuf/io-png.c: In function 'png_info_callback':
../libs/tk/ydk-pixbuf/io-png.c:679:32: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  679 |                                (png_charpp) &icc_profile_title, &compression_type,
      |                                ^
../libs/tk/ydk-pixbuf/io-png.c:680:32: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  680 |                                (png_bytepp) &icc_profile, &icc_profile_size);
      |                                ^
../libs/tk/ydk-pixbuf/io-png.c: At top level:
../libs/tk/ydk-pixbuf/io-png.c:1087:37: warning: no previous prototype for '_gdk_pixbuf__png_fill_vtable' [-Wmissing-prototypes]
 1087 | #define MODULE_ENTRY(function) void _gdk_pixbuf__png_ ## function
      |                                     ^~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-png.c:1090:1: note: in expansion of macro 'MODULE_ENTRY'
 1090 | MODULE_ENTRY (fill_vtable) (GdkPixbufModule *module)
      | ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-png.c:1087:37: warning: no previous prototype for '_gdk_pixbuf__png_fill_info' [-Wmissing-prototypes]
 1087 | #define MODULE_ENTRY(function) void _gdk_pixbuf__png_ ## function
      |                                     ^~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-png.c:1100:1: note: in expansion of macro 'MODULE_ENTRY'
 1100 | MODULE_ENTRY (fill_info) (GdkPixbufFormat *info)
      | ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/io-png.c: In function '_gdk_pixbuf__png_fill_info':
../libs/tk/ydk-pixbuf/io-png.c:1116:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 1116 |         info->signature = (GdkPixbufModulePattern *) signature;
      |                           ^
../libs/tk/ydk-pixbuf/io-png.c:1118:28: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 1118 |         info->mime_types = (gchar **) mime_types;
      |                            ^
../libs/tk/ydk-pixbuf/io-png.c:1119:28: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 1119 |         info->extensions = (gchar **) extensions;
      |                            ^

[ 271/1835] Compiling libs/tk/ytk/gtkalignment.c
[ 272/1835] Compiling libs/tk/ytk/gtktogglebutton.c
[ 273/1835] Compiling libs/tk/ytk/gtktoolbutton.c
[ 274/1835] Compiling libs/tk/ytk/gtktoolbar.c
[ 275/1835] Compiling libs/tk/ytk/fnmatch.c
[ 276/1835] Compiling libs/tk/ytk/gtkaccelmap.c
[ 277/1835] Compiling libs/tk/ytk/gtkactivatable.c
[ 278/1835] Compiling libs/tk/ytk/gtktoggletoolbutton.c
[ 279/1835] Compiling libs/tk/ytk/gtkaccessible.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-loader.h:34,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:33,
                 from ../libs/tk/ydk-pixbuf/gdk-pixdata.c:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:30:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixdata.c: In function 'gdk_pixdata_serialize':
../libs/tk/ydk-pixbuf/gdk-pixdata.c:135:13: warning: cast increases required alignment of target type [-Wcast-align]
  135 |   istream = (guint32*) stream;
      |             ^
../libs/tk/ydk-pixbuf/gdk-pixdata.c: In function 'gdk_pixdata_deserialize':
../libs/tk/ydk-pixbuf/gdk-pixdata.c:237:25: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  237 |   pixdata->pixel_data = (guint8 *)stream;
      |                         ^
In file included from /usr/lib/glib-2.0/include/glibconfig.h:9,
                 from /usr/include/glib-2.0/glib/gtypes.h:34:
../libs/tk/ydk-pixbuf/gdk-pixdata.c: In function 'gdk_pixdata_from_pixbuf':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixdata.c:336:3: note: in expansion of macro 'g_return_val_if_fail'
  336 |   g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
      |   ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixdata.c:336:25: note: in expansion of macro 'GDK_IS_PIXBUF'
  336 |   g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
      |                         ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixdata.c:369:15: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  369 |         buf = (GdkPixbuf *)pixbuf;
      |               ^

[ 280/1835] Compiling libs/tk/ytk/gtktextview.c
[ 281/1835] Compiling libs/tk/ytk/gtkactiongroup.c
[ 282/1835] Compiling libs/tk/ytk/gtkvseparator.c
[ 283/1835] Compiling libs/tk/ytk/gtkthemes.c
[ 284/1835] Compiling libs/tk/ytk/gtktoggleaction.c
[ 285/1835] Compiling libs/tk/ytk/gtkaliasdef.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-loader.h:34,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:33,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf-util.c:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-transform.h:31,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf-util.c:26:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from /usr/lib/glib-2.0/include/glibconfig.h:9,
                 from /usr/include/glib-2.0/glib/gtypes.h:34:
../libs/tk/ydk-pixbuf/gdk-pixbuf-util.c: In function 'gdk_pixbuf_add_alpha':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-util.c:71:9: note: in expansion of macro 'g_return_val_if_fail'
   71 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-util.c:71:31: note: in expansion of macro 'GDK_IS_PIXBUF'
   71 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
      |                               ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-util.c: In function 'gdk_pixbuf_saturate_and_pixelate':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:651:9: note: in expansion of macro 'G_LIKELY'
  651 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-util.c:202:9: note: in expansion of macro 'g_return_if_fail'
  202 |         g_return_if_fail (GDK_IS_PIXBUF (src));
      |         ^~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-util.c:202:27: note: in expansion of macro 'GDK_IS_PIXBUF'
  202 |         g_return_if_fail (GDK_IS_PIXBUF (src));
      |                           ^~~~~~~~~~~~~

In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-loader.h:34,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:33,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-transform.h:31,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c:24:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from /usr/lib/glib-2.0/include/glibconfig.h:9,
                 from /usr/include/glib-2.0/glib/gtypes.h:34:
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c: In function 'gdk_pixbuf_scale':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:651:9: note: in expansion of macro 'G_LIKELY'
  651 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c:144:3: note: in expansion of macro 'g_return_if_fail'
  144 |   g_return_if_fail (GDK_IS_PIXBUF (src));
      |   ^~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c:144:21: note: in expansion of macro 'GDK_IS_PIXBUF'
  144 |   g_return_if_fail (GDK_IS_PIXBUF (src));
      |                     ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c: In function 'gdk_pixbuf_composite':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:651:9: note: in expansion of macro 'G_LIKELY'
  651 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c:208:3: note: in expansion of macro 'g_return_if_fail'
  208 |   g_return_if_fail (GDK_IS_PIXBUF (src));
      |   ^~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c:208:21: note: in expansion of macro 'GDK_IS_PIXBUF'
  208 |   g_return_if_fail (GDK_IS_PIXBUF (src));
      |                     ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c: In function 'gdk_pixbuf_composite_color':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:651:9: note: in expansion of macro 'G_LIKELY'
  651 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c:282:3: note: in expansion of macro 'g_return_if_fail'
  282 |   g_return_if_fail (GDK_IS_PIXBUF (src));
      |   ^~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c:282:21: note: in expansion of macro 'GDK_IS_PIXBUF'
  282 |   g_return_if_fail (GDK_IS_PIXBUF (src));
      |                     ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c: In function 'gdk_pixbuf_scale_simple':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c:336:3: note: in expansion of macro 'g_return_val_if_fail'
  336 |   g_return_val_if_fail (GDK_IS_PIXBUF (src), NULL);
      |   ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c:336:25: note: in expansion of macro 'GDK_IS_PIXBUF'
  336 |   g_return_val_if_fail (GDK_IS_PIXBUF (src), NULL);
      |                         ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c: In function 'gdk_pixbuf_composite_color_simple':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c:382:3: note: in expansion of macro 'g_return_val_if_fail'
  382 |   g_return_val_if_fail (GDK_IS_PIXBUF (src), NULL);
      |   ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-scale.c:382:25: note: in expansion of macro 'GDK_IS_PIXBUF'
  382 |   g_return_val_if_fail (GDK_IS_PIXBUF (src), NULL);
      |                         ^~~~~~~~~~~~~

[ 286/1835] Compiling libs/tk/ytk/gtktextsegment.c
[ 287/1835] Compiling libs/tk/ytk/gtktextlayout.c
[ 288/1835] Compiling libs/tk/ytk/gtktexttagtable.c
[ 289/1835] Compiling libs/tk/ytk/gtksocket-x11.c
[ 290/1835] Compiling libs/tk/ytk/gtktexttypes.c
[ 291/1835] Compiling libs/tk/ytk/gtkxembed.c
[ 292/1835] Compiling libs/tk/ytk/gtkbindings.c
../libs/tk/ydk-pixbuf/pixops/pixops.c: In function 'pixops_scale_nearest':
../libs/tk/ydk-pixbuf/pixops/pixops.c:332:36: warning: cast increases required alignment of target type [-Wcast-align]
  332 |               INNER_LOOP(4, 4, p32=(guint32*)dest;*p32=*((guint32*)p));
      |                                    ^
../libs/tk/ydk-pixbuf/pixops/pixops.c:281:11: note: in definition of macro 'INNER_LOOP'
  281 |           ASSIGN_PIXEL;                                         \
      |           ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/pixops/pixops.c:332:58: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  332 |               INNER_LOOP(4, 4, p32=(guint32*)dest;*p32=*((guint32*)p));
      |                                                          ^
../libs/tk/ydk-pixbuf/pixops/pixops.c:281:11: note: in definition of macro 'INNER_LOOP'
  281 |           ASSIGN_PIXEL;                                         \
      |           ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/pixops/pixops.c:332:58: warning: cast increases required alignment of target type [-Wcast-align]
  332 |               INNER_LOOP(4, 4, p32=(guint32*)dest;*p32=*((guint32*)p));
      |                                                          ^
../libs/tk/ydk-pixbuf/pixops/pixops.c:281:11: note: in definition of macro 'INNER_LOOP'
  281 |           ASSIGN_PIXEL;                                         \
      |           ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/pixops/pixops.c:332:36: warning: cast increases required alignment of target type [-Wcast-align]
  332 |               INNER_LOOP(4, 4, p32=(guint32*)dest;*p32=*((guint32*)p));
      |                                    ^
../libs/tk/ydk-pixbuf/pixops/pixops.c:288:11: note: in definition of macro 'INNER_LOOP'
  288 |           ASSIGN_PIXEL;                                         \
      |           ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/pixops/pixops.c:332:58: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  332 |               INNER_LOOP(4, 4, p32=(guint32*)dest;*p32=*((guint32*)p));
      |                                                          ^
../libs/tk/ydk-pixbuf/pixops/pixops.c:288:11: note: in definition of macro 'INNER_LOOP'
  288 |           ASSIGN_PIXEL;                                         \
      |           ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/pixops/pixops.c:332:58: warning: cast increases required alignment of target type [-Wcast-align]
  332 |               INNER_LOOP(4, 4, p32=(guint32*)dest;*p32=*((guint32*)p));
      |                                                          ^
../libs/tk/ydk-pixbuf/pixops/pixops.c:288:11: note: in definition of macro 'INNER_LOOP'
  288 |           ASSIGN_PIXEL;                                         \
      |           ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/pixops/pixops.c:332:36: warning: cast increases required alignment of target type [-Wcast-align]
  332 |               INNER_LOOP(4, 4, p32=(guint32*)dest;*p32=*((guint32*)p));
      |                                    ^
../libs/tk/ydk-pixbuf/pixops/pixops.c:296:11: note: in definition of macro 'INNER_LOOP'
  296 |           ASSIGN_PIXEL;                                         \
      |           ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/pixops/pixops.c:332:58: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  332 |               INNER_LOOP(4, 4, p32=(guint32*)dest;*p32=*((guint32*)p));
      |                                                          ^
../libs/tk/ydk-pixbuf/pixops/pixops.c:296:11: note: in definition of macro 'INNER_LOOP'
  296 |           ASSIGN_PIXEL;                                         \
      |           ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/pixops/pixops.c:332:58: warning: cast increases required alignment of target type [-Wcast-align]
  332 |               INNER_LOOP(4, 4, p32=(guint32*)dest;*p32=*((guint32*)p));
      |                                                          ^
../libs/tk/ydk-pixbuf/pixops/pixops.c:296:11: note: in definition of macro 'INNER_LOOP'
  296 |           ASSIGN_PIXEL;                                         \
      |           ^~~~~~~~~~~~
../libs/tk/ydk-pixbuf/pixops/pixops.c: In function 'composite_line_22_4a4':
../libs/tk/ydk-pixbuf/pixops/pixops.c:687:23: warning: cast increases required alignment of target type [-Wcast-align]
  687 |       pixel_weights = (int *)((char *)weights +
      |                       ^
../libs/tk/ydk-pixbuf/pixops/pixops.c: In function 'pixops_process':
../libs/tk/ydk-pixbuf/pixops/pixops.c:1323:28: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 1323 |             line_bufs[j] = (guchar *)src_buf;
      |                            ^
../libs/tk/ydk-pixbuf/pixops/pixops.c:1325:28: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 1325 |             line_bufs[j] = (guchar *)src_buf + src_rowstride * y_start;
      |                            ^
../libs/tk/ydk-pixbuf/pixops/pixops.c:1327:28: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 1327 |             line_bufs[j] = (guchar *)src_buf + src_rowstride * (src_height - 1);
      |                            ^

[ 293/1835] Compiling libs/tk/ytk/gtkuimanager.c
[ 294/1835] Compiling libs/tk/ytk/gtkdnd.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-loader.h:34,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:33,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:30:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c: In function 'animation_new_from_stream_thread':
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:419:17: warning: 'g_simple_async_result_take_error' is deprecated [-Wdeprecated-declarations]
  419 |                 g_simple_async_result_take_error (result, error);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/gio/gio.h:141,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:33,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:32:
/usr/include/glib-2.0/gio/gsimpleasyncresult.h:113:21: note: declared here
  113 | void                g_simple_async_result_take_error       (GSimpleAsyncResult      *simple,
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:421:17: warning: 'g_simple_async_result_set_op_res_gpointer' is deprecated [-Wdeprecated-declarations]
  421 |                 g_simple_async_result_set_op_res_gpointer (result, g_object_ref (animation), g_object_unref);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gio/gsimpleasyncresult.h:72:21: note: declared here
   72 | void                g_simple_async_result_set_op_res_gpointer (GSimpleAsyncResult      *simple,
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c: In function 'gdk_pixbuf_animation_new_from_stream_async':
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:455:9: warning: 'g_simple_async_result_new' is deprecated: Use 'g_task_new' instead [-Wdeprecated-declarations]
  455 |         result = g_simple_async_result_new (G_OBJECT (stream), callback, user_data, gdk_pixbuf_animation_new_from_stream_async);
      |         ^~~~~~
/usr/include/glib-2.0/gio/gsimpleasyncresult.h:48:21: note: declared here
   48 | GSimpleAsyncResult *g_simple_async_result_new              (GObject                 *source_object,
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:456:9: warning: 'g_simple_async_result_run_in_thread' is deprecated [-Wdeprecated-declarations]
  456 |         g_simple_async_result_run_in_thread (result, (GSimpleAsyncThreadFunc) animation_new_from_stream_thread, G_PRIORITY_DEFAULT, cancellable);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gio/gsimpleasyncresult.h:105:21: note: declared here
  105 | void                g_simple_async_result_run_in_thread    (GSimpleAsyncResult      *simple,
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c: In function 'gdk_pixbuf_animation_new_from_stream_finish':
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:481:9: warning: 'g_simple_async_result_get_source_tag' is deprecated [-Wdeprecated-declarations]
  481 |         g_warn_if_fail (g_simple_async_result_get_source_tag (result) == gdk_pixbuf_animation_new_from_stream_async);
      |         ^~~~~~~~~~~~~~
/usr/include/glib-2.0/gio/gsimpleasyncresult.h:96:21: note: declared here
   96 | gpointer            g_simple_async_result_get_source_tag   (GSimpleAsyncResult      *simple);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:483:9: warning: 'g_simple_async_result_propagate_error' is deprecated [-Wdeprecated-declarations]
  483 |         if (g_simple_async_result_propagate_error (result, error))
      |         ^~
/usr/include/glib-2.0/gio/gsimpleasyncresult.h:116:21: note: declared here
  116 | gboolean            g_simple_async_result_propagate_error  (GSimpleAsyncResult      *simple,
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:486:9: warning: 'g_simple_async_result_get_op_res_gpointer' is deprecated [-Wdeprecated-declarations]
  486 |         return g_simple_async_result_get_op_res_gpointer (result);
      |         ^~~~~~
/usr/include/glib-2.0/gio/gsimpleasyncresult.h:76:21: note: declared here
   76 | gpointer            g_simple_async_result_get_op_res_gpointer (GSimpleAsyncResult      *simple);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c: At top level:
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:690:32: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  690 |                                const GTimeVal     *start_time)
      |                                ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c: In function 'gdk_pixbuf_animation_get_iter':
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:692:9: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  692 |         GTimeVal val;
      |         ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:700:17: warning: 'g_get_current_time' is deprecated: Use 'g_get_real_time' instead [-Wdeprecated-declarations]
  700 |                 g_get_current_time (&val);
      |                 ^~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib/giochannel.h:35,
                 from /usr/include/glib-2.0/glib.h:56:
/usr/include/glib-2.0/glib/gmain.h:819:8: note: declared here
  819 | void   g_get_current_time                 (GTimeVal       *result);
      |        ^~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c: At top level:
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:815:36: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  815 |                                    const GTimeVal         *current_time)
      |                                    ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c: In function 'gdk_pixbuf_animation_iter_advance':
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:817:9: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  817 |         GTimeVal val;
      |         ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:825:17: warning: 'g_get_current_time' is deprecated: Use 'g_get_real_time' instead [-Wdeprecated-declarations]
  825 |                 g_get_current_time (&val);
      |                 ^~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmain.h:819:8: note: declared here
  819 | void   g_get_current_time                 (GTimeVal       *result);
      |        ^~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c: At top level:
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:837:70: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  837 |                                                                      const GTimeVal     *start_time);
      |                                                                      ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:921:31: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  921 |                               const GTimeVal     *start_time)
      |                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:939:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  939 |                                                                        const GTimeVal         *current_time);
      |                                                                        ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-animation.c:996:35: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  996 |                                   const GTimeVal         *current_time)
      |                                   ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[ 295/1835] Compiling libs/tk/ytk/gtkhscale.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-loader.h:34,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:33,
                 from ../libs/tk/ydk-pixbuf/gdk-pixbuf.c:31:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-private.h:30:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:149:46: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  149 |                                              const GTimeVal     *start_time);
      |                                              ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:193:41: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  193 |                                         const GTimeVal         *current_time);
      |                                         ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ydk-pixbuf/gdk-pixbuf.c:38:
../libs/tk/ydk-pixbuf/gdk-pixbuf-marshal.c:56:1: warning: no previous prototype for '_gdk_pixbuf_marshal_VOID__INT_INT' [-Wmissing-prototypes]
   56 | _gdk_pixbuf_marshal_VOID__INT_INT (GClosure     *closure,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf-marshal.c:93:1: warning: no previous prototype for '_gdk_pixbuf_marshal_VOID__INT_INT_INT_INT' [-Wmissing-prototypes]
   93 | _gdk_pixbuf_marshal_VOID__INT_INT_INT_INT (GClosure     *closure,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/glib-2.0/include/glibconfig.h:9,
                 from /usr/include/glib-2.0/glib/gtypes.h:34:
../libs/tk/ydk-pixbuf/gdk-pixbuf.c: In function 'gdk_pixbuf_copy':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:481:9: note: in expansion of macro 'g_return_val_if_fail'
  481 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:481:31: note: in expansion of macro 'GDK_IS_PIXBUF'
  481 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
      |                               ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c: In function 'gdk_pixbuf_get_colorspace':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:577:9: note: in expansion of macro 'g_return_val_if_fail'
  577 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), GDK_COLORSPACE_RGB);
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:577:31: note: in expansion of macro 'GDK_IS_PIXBUF'
  577 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), GDK_COLORSPACE_RGB);
      |                               ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c: In function 'gdk_pixbuf_get_n_channels':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:593:9: note: in expansion of macro 'g_return_val_if_fail'
  593 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), -1);
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:593:31: note: in expansion of macro 'GDK_IS_PIXBUF'
  593 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), -1);
      |                               ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c: In function 'gdk_pixbuf_get_has_alpha':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:609:9: note: in expansion of macro 'g_return_val_if_fail'
  609 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), FALSE);
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:609:31: note: in expansion of macro 'GDK_IS_PIXBUF'
  609 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), FALSE);
      |                               ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c: In function 'gdk_pixbuf_get_bits_per_sample':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:625:9: note: in expansion of macro 'g_return_val_if_fail'
  625 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), -1);
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:625:31: note: in expansion of macro 'GDK_IS_PIXBUF'
  625 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), -1);
      |                               ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c: In function 'gdk_pixbuf_get_pixels_with_length':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:671:9: note: in expansion of macro 'g_return_val_if_fail'
  671 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:671:31: note: in expansion of macro 'GDK_IS_PIXBUF'
  671 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
      |                               ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:674:41: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
  674 |                 GdkPixbuf *mut_pixbuf = (GdkPixbuf*)pixbuf;
      |                                         ^
../libs/tk/ydk-pixbuf/gdk-pixbuf.c: In function 'gdk_pixbuf_read_pixels':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:700:9: note: in expansion of macro 'g_return_val_if_fail'
  700 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:700:31: note: in expansion of macro 'GDK_IS_PIXBUF'
  700 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
      |                               ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c: In function 'gdk_pixbuf_read_pixel_bytes':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:725:9: note: in expansion of macro 'g_return_val_if_fail'
  725 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:725:31: note: in expansion of macro 'GDK_IS_PIXBUF'
  725 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
      |                               ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c: In function 'gdk_pixbuf_get_width':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:746:9: note: in expansion of macro 'g_return_val_if_fail'
  746 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), -1);
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:746:31: note: in expansion of macro 'GDK_IS_PIXBUF'
  746 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), -1);
      |                               ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c: In function 'gdk_pixbuf_get_height':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:762:9: note: in expansion of macro 'g_return_val_if_fail'
  762 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), -1);
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:762:31: note: in expansion of macro 'GDK_IS_PIXBUF'
  762 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), -1);
      |                               ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c: In function 'gdk_pixbuf_get_rowstride':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:779:9: note: in expansion of macro 'g_return_val_if_fail'
  779 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), -1);
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:779:31: note: in expansion of macro 'GDK_IS_PIXBUF'
  779 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), -1);
      |                               ^~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c: In function 'gdk_pixbuf_get_byte_length':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:797:9: note: in expansion of macro 'g_return_val_if_fail'
  797 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), -1);
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ydk-pixbuf/gdk-pixbuf.c:797:31: note: in expansion of macro 'GDK_IS_PIXBUF'
  797 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), -1);
      |                               ^~~~~~~~~~~~~

[ 296/1835] Compiling libs/tk/ytk/gtkplug-x11.c
[ 297/1835] Compiling libs/tk/ytk/gtktexttag.c
[ 298/1835] Compiling libs/tk/ytk/gtkrecentchooserdialog.c
[ 299/1835] Compiling libs/tk/ytk/gtkstyle.c
[ 300/1835] Compiling libs/tk/ytk/gtktextmark.c
[ 301/1835] Compiling libs/tk/ytk/gtksettings.c
[ 302/1835] Compiling libs/tk/ytk/gtkfontbutton.c
[ 303/1835] Linking build/libs/tk/ztk/libztk.so
[ 304/1835] Compiling libs/tk/ytk/gtktextbuffer.c
[ 305/1835] Compiling libs/tk/ytk/gtkfontsel.c
[ 306/1835] Compiling libs/tk/ytk/gtkvbbox.c
[ 307/1835] Compiling libs/tk/ytk/gtktextchild.c
[ 308/1835] Compiling libs/tk/ytk/gtktextbtree.c
[ 309/1835] Compiling libs/tk/ytk/gtktearoffmenuitem.c
[ 310/1835] Compiling libs/tk/ytk/gtkspinbutton.c
[ 311/1835] Compiling libs/tk/ytk/gtkstatusbar.c
[ 312/1835] Compiling libs/tk/ytk/gtkfilesystem.c
[ 313/1835] Compiling libs/tk/ytk/gtkstock.c
[ 314/1835] Compiling libs/tk/ytk/gtktable.c
[ 315/1835] Compiling libs/tk/ytk/gtksizegroup.c
[ 316/1835] Linking build/libs/pbd/libpbd.so
[ 317/1835] Compiling libs/tk/ytk/gtkspinner.c
[ 318/1835] Compiling libs/tk/ytk/gtktextbufferserialize.c
[ 319/1835] Compiling libs/tk/ytk/gtksocket.c
[ 320/1835] Compiling libs/tk/ytk/gtkfilechooserbutton.c
[ 321/1835] Compiling libs/tk/ytk/gtkhruler.c
[ 322/1835] Compiling libs/tk/ytk/gtkoffscreenwindow.c
[ 323/1835] Compiling libs/tk/ytk/gtkiconfactory.c
[ 324/1835] Compiling libs/tk/ytk/gtkbuilderparser.c
[ 325/1835] Compiling libs/tk/ytk/gtkentry.c
[ 326/1835] Compiling libs/tk/ytk/gtkrecentchoosermenu.c
[ 327/1835] Compiling libs/tk/ytk/gtkseparatortoolitem.c
[ 328/1835] Compiling libs/tk/ytk/gtkseparator.c
[ 329/1835] Compiling libs/tk/ytk/gtkseparatormenuitem.c
[ 330/1835] Compiling libs/tk/ytk/gtkselection.c
[ 331/1835] Compiling libs/tk/ytk/gtkscrollbar.c
[ 332/1835] Compiling libs/tk/ytk/gtkcellrendererprogress.c
[ 333/1835] Compiling libs/tk/ytk/gtksearchenginesimple.c
[ 334/1835] Compiling libs/tk/ytk/gtksearchengine.c
[ 335/1835] Compiling libs/tk/ytk/gtkscrolledwindow.c
[ 336/1835] Compiling libs/tk/ytk/gtkrecentchooserutils.c
[ 337/1835] Compiling libs/tk/ytk/gtkcolorbutton.c
[ 338/1835] Compiling libs/tk/ytk/gtkrecentfilter.c
[ 339/1835] Compiling libs/tk/ytk/gtkcellrenderercombo.c
[ 340/1835] Compiling libs/tk/ytk/gtkcelllayout.c
[ 341/1835] Compiling libs/tk/ytk/gtkcellrendererspin.c
[ 342/1835] Compiling libs/tk/ytk/gtkscale.c
[ 343/1835] Compiling libs/tk/ytk/gtkshow.c
[ 344/1835] Compiling libs/tk/ytk/gtkrbtree.c
[ 345/1835] Compiling libs/tk/ytk/gtkrecentchooserdefault.c
[ 346/1835] Compiling libs/tk/ytk/gtkrc.c
[ 347/1835] Compiling libs/tk/ytk/gtkradiomenuitem.c
[ 348/1835] Compiling libs/tk/ytk/gtkrecentchooser.c
[ 349/1835] Compiling libs/tk/ytk/gtkradiotoolbutton.c
[ 350/1835] Compiling libs/tk/ytk/gtkrange.c
[ 351/1835] Compiling libs/tk/ytk/gtkrecentaction.c
[ 352/1835] Compiling libs/tk/ytk/gtkpaned.c
[ 353/1835] Compiling libs/tk/ytk/gtkplug.c
[ 354/1835] Compiling libs/tk/ytk/gtkquery.c
[ 355/1835] Compiling libs/tk/ytk/gtkradioaction.c
[ 356/1835] Compiling libs/tk/ytk/gtkprogressbar.c
[ 357/1835] Compiling libs/tk/ytk/gtkpango.c
[ 358/1835] Compiling libs/tk/ytk/gtkpathbar.c
[ 359/1835] Compiling libs/tk/ytk/gtkprogress.c
[ 360/1835] Compiling libs/tk/ytk/gtkradiobutton.c
[ 361/1835] Compiling libs/tk/ytk/gtkscalebutton.c
[ 362/1835] Compiling libs/tk/ytk/gtkorientable.c
[ 363/1835] Compiling libs/tk/ytk/gtkliststore.c
[ 364/1835] Compiling libs/tk/ytk/gtkrecentchooserwidget.c
[ 365/1835] Compiling libs/tk/ytk/gtkrecentmanager.c
[ 366/1835] Compiling libs/tk/ytk/gtkruler.c
[ 367/1835] Compiling libs/tk/ytk/gtkmenutoolbutton.c
[ 368/1835] Linking build/libs/tk/ydk-pixbuf/libydk-pixbuf.so
[ 369/1835] Compiling libs/tk/ytk/gtkmountoperation.c
[ 370/1835] Compiling libs/tk/ytk/gtktoolitem.c
[ 371/1835] Compiling libs/tk/ytk/gtkobject.c
[ 372/1835] Compiling libs/tk/ytk/gtkoptionmenu.c
[ 373/1835] Compiling libs/tk/ytk/gtkmain.c
[ 374/1835] Compiling libs/tk/ytk/gtkmessagedialog.c
[ 375/1835] Compiling libs/tk/ytk/gtkmodules.c
[ 376/1835] Compiling libs/tk/ytk/gtkmisc.c
[ 377/1835] Compiling libs/tk/ytk/gtkmarshal.c
[ 378/1835] Compiling libs/tk/ytk/gtkcheckbutton.c
[ 379/1835] Compiling libs/tk/ytk/gtkmenu.c
[ 380/1835] Compiling libs/tk/ytk/gtknotebook.c
[ 381/1835] Compiling libs/tk/ytk/gtkmenuitem.c
[ 382/1835] Compiling libs/tk/ytk/gtkimcontext.c
[ 383/1835] Compiling libs/tk/ytk/gtkmenushell.c
[ 384/1835] Compiling libs/tk/ytk/gtkmenubar.c
[ 385/1835] Compiling libs/tk/ytk/gtkmarshalers.c
[ 386/1835] Compiling libs/tk/ytk/gtkmnemonichash.c
[ 387/1835] Compiling libs/tk/ytk/gtkhsv.c
[ 388/1835] Compiling libs/tk/ytk/gtkimmulticontext.c
[ 389/1835] Compiling libs/tk/ytk/gtklayout.c
[ 390/1835] Compiling libs/tk/ytk/gtklabel.c
[ 391/1835] Compiling libs/tk/ytk/gtkinvisible.c
[ 392/1835] Compiling libs/tk/ytk/gtkkeyhash.c
[ 393/1835] Compiling libs/tk/ytk/gtkitem.c
[ 394/1835] Compiling libs/tk/ytk/gtkimcontextsimple.c
[ 395/1835] Compiling libs/tk/ytk/gtkinfobar.c
[ 396/1835] Compiling libs/tk/ytk/gtklinkbutton.c
[ 397/1835] Compiling libs/tk/ytk/gtkaspectframe.c
[ 398/1835] Compiling libs/tk/ytk/gtkimagemenuitem.c
[ 399/1835] Compiling libs/tk/ytk/gtkimmodule.c
[ 400/1835] Compiling libs/tk/ytk/gtkiconview.c
[ 401/1835] Compiling libs/tk/ytk/gtkentrycompletion.c
[ 402/1835] Compiling libs/tk/ytk/gtkimage.c
[ 403/1835] Compiling libs/tk/ytk/gtkcellview.c
[ 404/1835] Compiling libs/tk/ytk/gtkhscrollbar.c
[ 405/1835] Compiling libs/tk/ytk/gtkicontheme.c
[ 406/1835] Compiling libs/tk/ytk/gtkfilechooserwidget.c
[ 407/1835] Compiling libs/tk/ytk/gtkfixed.c
[ 408/1835] Compiling libs/tk/ytk/gtkfilechooser.c
[ 409/1835] Compiling libs/tk/ytk/gtkgc.c
[ 410/1835] Compiling libs/tk/ytk/gtkdrawingarea.c
[ 411/1835] Compiling libs/tk/ytk/gtkfilechooserembed.c
[ 412/1835] Compiling libs/tk/ytk/gtkcellrenderertoggle.c
[ 413/1835] Compiling libs/tk/ytk/gtkcolorsel.c
[ 414/1835] Compiling libs/tk/ytk/gtkaction.c
[ 415/1835] Compiling libs/tk/ytk/gtkhpaned.c
[ 416/1835] Compiling libs/tk/ytk/gtkhseparator.c
[ 417/1835] Compiling libs/tk/ytk/gtktextbufferrichtext.c
[ 418/1835] Compiling libs/tk/ytk/gtkfilesystemmodel.c
[ 419/1835] Compiling libs/tk/ytk/gtkfilechooserutils.c
[ 420/1835] Compiling libs/tk/ytk/gtkeditable.c
[ 421/1835] Compiling libs/tk/ytk/gtkcombobox.c
[ 422/1835] Compiling libs/tk/ytk/gtkcelleditable.c
[ 423/1835] Compiling libs/tk/ytk/gtkcellrendererspinner.c
[ 424/1835] Compiling libs/tk/ytk/gtkcontainer.c
[ 425/1835] Compiling libs/tk/ytk/gtkfilechooserdialog.c
[ 426/1835] Compiling libs/tk/ytk/gtkcellrenderer.c
[ 427/1835] Compiling libs/tk/ytk/gtkcellrenderertext.c
[ 428/1835] Compiling libs/tk/ytk/gtkhbbox.c
[ 429/1835] Compiling libs/tk/ytk/gtkcomboboxtext.c
[ 430/1835] Compiling libs/tk/ytk/gtkviewport.c
[ 431/1835] Compiling libs/tk/ytk/gtktextdisplay.c
[ 432/1835] Compiling libs/tk/ytk/gtkeventbox.c
[ 433/1835] Compiling libs/tk/ytk/gtkfilechooserentry.c
[ 434/1835] Compiling libs/tk/ytk/gtkbbox.c
[ 435/1835] Compiling libs/tk/ytk/gtkadjustment.c
[ 436/1835] Compiling libs/tk/ytk/gtkcheckmenuitem.c
[ 437/1835] Compiling libs/tk/ytk/gtkassistant.c
[ 438/1835] Compiling libs/tk/ytk/gtkiconcache.c
[ 439/1835] Compiling libs/tk/ytk/gtkcellrendererpixbuf.c
[ 440/1835] Compiling libs/tk/ytk/gtkaccelgroup.c
[ 441/1835] Compiling libs/tk/ytk/gtktypeutils.c
[ 442/1835] Compiling libs/tk/ytk/gtkcellrendereraccel.c
[ 443/1835] Compiling libs/tk/ytk/gtkhandlebox.c
[ 444/1835] Compiling libs/tk/ytk/gtkaccellabel.c
[ 445/1835] Compiling libs/tk/ytk/gtkiconcachevalidator.c
[ 446/1835] Compiling libs/tk/ytk/gtkhbox.c
[ 447/1835] Compiling libs/tk/ytk/gtkarrow.c
[ 448/1835] Compiling libs/tk/ytk/gtkvscrollbar.c
[ 449/1835] Compiling libs/tk/ytk/gtkaboutdialog.c
[ 450/1835] Compiling libs/tk/ytk/gtkwindow.c
[ 451/1835] Compiling libs/tk/ytk/gtkmountoperation-x11.c
[ 452/1835] Compiling libs/tk/ytk/gtkclipboard.c
[ 453/1835] Compiling libs/tk/ztkmm/wrap_init.cc
[ 454/1835] Compiling libs/tk/ztkmm/action.cc
[ 455/1835] Compiling libs/tk/ztkmm/text.cc
[ 456/1835] Compiling libs/tk/ztkmm/streamablecontent.cc
[ 457/1835] Compiling libs/tk/ztkmm/table.cc
[ 458/1835] Compiling libs/tk/ztkmm/value.cc
[ 459/1835] Compiling libs/tk/ztkmm/editabletext.cc
[ 460/1835] Compiling libs/tk/ztkmm/document.cc
[ 461/1835] Compiling libs/tk/ztkmm/component.cc
[ 462/1835] Compiling libs/tk/ztkmm/image.cc
[ 463/1835] Compiling libs/tk/ztkmm/init.cc
[ 464/1835] Compiling libs/tk/ztkmm/implementor.cc
[ 465/1835] Compiling libs/tk/ztkmm/hypertext.cc
[ 466/1835] Compiling libs/tk/ztkmm/objectaccessible.cc
[ 467/1835] Compiling libs/tk/ztkmm/object.cc
[ 468/1835] Compiling libs/tk/ztkmm/selection.cc
[ 469/1835] Compiling libs/tk/ztkmm/relationset.cc
[ 470/1835] Compiling libs/tk/ztkmm/relation.cc
[ 471/1835] Compiling libs/tk/ztkmm/noopobject.cc
[ 472/1835] Compiling libs/tk/ztkmm/hyperlink.cc
[ 473/1835] Compiling libs/tk/ztkmm/stateset.cc
[ 474/1835] Compiling libs/ptformat/ptformat.cc
[ 475/1835] Compiling libs/tk/suil/host.c
[ 476/1835] Compiling libs/tk/suil/instance.c
[ 477/1835] Compiling libs/midi++2/midi.cc
[ 478/1835] Compiling libs/midi++2/mtc.cc
[ 479/1835] Compiling libs/midi++2/mmc.cc
[ 480/1835] Compiling libs/midi++2/midnam_patch.cc
[ 481/1835] Compiling libs/midi++2/channel.cc
[ 482/1835] Compiling libs/midi++2/ipmidi_port.cc
[ 483/1835] Compiling libs/midi++2/parser.cc
[ 484/1835] Compiling libs/midi++2/port.cc
[ 485/1835] Compiling libs/audiographer/src/general/normalizer.cc
[ 486/1835] Compiling libs/audiographer/src/general/sr_converter.cc
[ 487/1835] Compiling libs/audiographer/private/limiter/limiter.cc
[ 488/1835] Compiling libs/audiographer/src/general/sndfile.cc
[ 489/1835] Compiling libs/audiographer/private/gdither/gdither.cc
[ 490/1835] Compiling libs/audiographer/src/routines.cc
[ 491/1835] Compiling libs/audiographer/src/general/sample_format_converter.cc
[ 492/1835] Compiling libs/audiographer/src/debug_utils.cc
[ 493/1835] Compiling libs/audiographer/src/general/broadcast_info.cc
[ 494/1835] Compiling libs/audiographer/src/general/analyser.cc
[ 495/1835] Compiling libs/audiographer/src/general/demo_noise.cc
[ 496/1835] Compiling libs/audiographer/src/general/loudness_reader.cc
[ 497/1835] Compiling libs/audiographer/src/general/limiter.cc
[ 498/1835] Compiling libs/zita-resampler/resampler.cc
[ 499/1835] Compiling libs/zita-resampler/resampler-table.cc
[ 500/1835] Linking build/libs/tk/ydk/libydk.so
[ 501/1835] Compiling libs/zita-resampler/vmresampler.cc
[ 502/1835] Compiling libs/zita-resampler/cresampler.cc
[ 503/1835] Compiling libs/zita-resampler/vresampler.cc
[ 504/1835] Compiling libs/fluidsynth/src/fluid_rvoice_mixer.c
[ 505/1835] Compiling libs/fluidsynth/src/fluid_ringbuffer.c
[ 506/1835] Compiling libs/fluidsynth/src/fluid_mod.c
[ 507/1835] Compiling libs/fluidsynth/src/fluid_settings.c
[ 508/1835] Compiling libs/fluidsynth/src/fluid_samplecache.c
[ 509/1835] Compiling libs/fluidsynth/src/fluid_list.c
[ 510/1835] Compiling libs/fluidsynth/src/fluid_gen.c
[ 511/1835] Compiling libs/fluidsynth/src/fluid_hash.c
[ 512/1835] Compiling libs/fluidsynth/src/fluid_synth.c
[ 513/1835] Compiling libs/fluidsynth/src/fluid_rvoice_dsp.c
[ 514/1835] Compiling libs/fluidsynth/src/fluid_rvoice.c
[ 515/1835] Compiling libs/fluidsynth/src/fluid_defsfont.c
[ 516/1835] Compiling libs/fluidsynth/src/fluid_tuning.c
[ 517/1835] Compiling libs/fluidsynth/src/fluid_event.c
[ 518/1835] Compiling libs/fluidsynth/src/fluid_voice.c
[ 519/1835] Compiling libs/fluidsynth/src/fluid_sffile.c
[ 520/1835] Compiling libs/fluidsynth/src/fluid_chorus.c
[ 521/1835] Compiling libs/fluidsynth/src/fluid_sfont.c
[ 522/1835] Compiling libs/fluidsynth/src/fluid_lfo.c
[ 523/1835] Compiling libs/fluidsynth/src/fluid_synth_monopoly.c
[ 524/1835] Compiling libs/fluidsynth/src/fluid_midi.c
[ 525/1835] Compiling libs/fluidsynth/src/fluid_sys.c
[ 526/1835] Compiling libs/fluidsynth/src/fluid_conv.c
[ 527/1835] Compiling libs/fluidsynth/src/fluid_adsr_env.c
[ 528/1835] Compiling libs/fluidsynth/src/fluid_rev.c
[ 529/1835] Compiling libs/fluidsynth/src/fluid_iir_filter.c
[ 530/1835] Compiling libs/fluidsynth/src/fluid_rvoice_event.c
[ 531/1835] Compiling libs/fluidsynth/src/fluid_chan.c
[ 532/1835] Compiling libs/libltc/decoder.c
[ 533/1835] Compiling libs/libltc/timecode.c
[ 534/1835] Compiling libs/libltc/ltc.c
[ 535/1835] Compiling libs/libltc/encoder.c
[ 536/1835] Compiling libs/lua/luastate.cc
[ 537/1835] Compiling libs/lua/lua.cc
[ 538/1835] Compiling libs/zita-convolver/zita-convolver.cc
[ 539/1835] Compiling libs/tk/ydkmm/pixmap.cc
[ 540/1835] Compiling libs/tk/ydkmm/pixbuf.cc
[ 541/1835] Compiling libs/tk/ydkmm/event.cc
[ 542/1835] Compiling libs/tk/ydkmm/rgb.cc
[ 543/1835] Compiling libs/tk/ydkmm/region.cc
[ 544/1835] Compiling libs/tk/ydkmm/device.cc
[ 545/1835] Compiling libs/tk/ydkmm/rectangle.cc
[ 546/1835] Compiling libs/tk/ydkmm/display.cc
[ 547/1835] Compiling libs/tk/ydkmm/displaymanager.cc
../libs/fluidsynth/src/fluid_rvoice_mixer.c: In function 'fluid_rvoice_buffers_mix':
../libs/fluidsynth/src/fluid_rvoice_mixer.c:465: warning: ignoring '#pragma omp simd' [-Wunknown-pragmas]
  465 |             #pragma omp simd aligned(dsp_buf,buf:FLUID_DEFAULT_ALIGNMENT)
../libs/fluidsynth/src/fluid_rvoice_mixer.c:476: warning: ignoring '#pragma omp simd' [-Wunknown-pragmas]
  476 |                 #pragma omp simd aligned(dsp_buf,buf:FLUID_DEFAULT_ALIGNMENT)

[ 548/1835] Compiling libs/tk/ydkmm/image.cc
[ 549/1835] Compiling libs/tk/ydkmm/general.cc
[ 550/1835] Compiling libs/tk/ydkmm/pixbufformat.cc
[ 551/1835] Compiling libs/tk/ydkmm/rgbcmap.cc
[ 552/1835] Compiling libs/tk/ydkmm/pixbufanimation.cc
[ 553/1835] Compiling libs/tk/ydkmm/pixbufanimationiter.cc
[ 554/1835] Compiling libs/tk/ydkmm/pixbufloader.cc
[ 555/1835] Compiling libs/tk/ydkmm/bitmap.cc
[ 556/1835] Compiling libs/tk/ydkmm/screen.cc
[ 557/1835] Compiling libs/tk/ydkmm/gc.cc
[ 558/1835] Compiling libs/tk/ydkmm/color.cc
[ 559/1835] Compiling libs/tk/ydkmm/dragcontext.cc
[ 560/1835] Compiling libs/tk/ydkmm/colormap.cc
[ 561/1835] Compiling libs/tk/ydkmm/wrap_init.cc
[ 562/1835] Compiling libs/tk/ydkmm/window.cc
[ 563/1835] Compiling libs/tk/ydkmm/types.cc
[ 564/1835] Compiling libs/tk/ydkmm/visual.cc
[ 565/1835] Compiling libs/tk/ydkmm/drawable.cc
[ 566/1835] Compiling libs/tk/ydkmm/cursor.cc
[ 567/1835] Compiling libs/ardour/luabindings.cc
[ 568/1835] Compiling libs/ardour/session_process.cc
[ 569/1835] Compiling libs/ardour/session_object.cc
[ 570/1835] Compiling libs/ardour/tempo_map_importer.cc
[ 571/1835] Compiling libs/ardour/export_graph_builder.cc
../libs/fluidsynth/src/fluid_defsfont.c: In function 'fluid_defsfont_load_all_sampledata':
../libs/fluidsynth/src/fluid_defsfont.c:396: warning: ignoring '#pragma omp parallel' [-Wunknown-pragmas]
  396 |     #pragma omp parallel
../libs/fluidsynth/src/fluid_defsfont.c:397: warning: ignoring '#pragma omp single' [-Wunknown-pragmas]
  397 |     #pragma omp single
../libs/fluidsynth/src/fluid_defsfont.c:406: warning: ignoring '#pragma omp task' [-Wunknown-pragmas]
  406 |             #pragma omp task firstprivate(sample,sfdata,defsfont) shared(sample_parsing_result) default(none)
../libs/fluidsynth/src/fluid_defsfont.c:410: warning: ignoring '#pragma omp critical' [-Wunknown-pragmas]
  410 |                     #pragma omp critical
../libs/fluidsynth/src/fluid_defsfont.c:425: warning: ignoring '#pragma omp task' [-Wunknown-pragmas]
  425 |             #pragma omp task firstprivate(sample, defsfont) default(none)

[ 572/1835] Compiling libs/ardour/audio_region_importer.cc
[ 573/1835] Compiling libs/ardour/bundle.cc
[ 574/1835] Compiling libs/ardour/audio_track.cc
[ 575/1835] Compiling libs/ardour/internal_send.cc
[ 576/1835] Compiling libs/ardour/internal_return.cc
../libs/zita-convolver/zita-convolver.cc: In member function 'void ArdourZita::Convlevel::process()':
../libs/zita-convolver/zita-convolver.cc:765:58: warning: cast from 'float (*)[2]' to 'FV4*' {aka '__vector(4) float*'} increases required alignment of target type [-Wcast-align]
  765 |                                                 FV4* A = (FV4*)ffta;
      |                                                          ^~~~~~~~~~
../libs/zita-convolver/zita-convolver.cc:766:58: warning: cast from 'float (*)[2]' to 'FV4*' {aka '__vector(4) float*'} increases required alignment of target type [-Wcast-align]
  766 |                                                 FV4* B = (FV4*)fftb;
      |                                                          ^~~~~~~~~~
../libs/zita-convolver/zita-convolver.cc:767:58: warning: cast from 'float (*)[2]' to 'FV4*' {aka '__vector(4) float*'} increases required alignment of target type [-Wcast-align]
  767 |                                                 FV4* D = (FV4*)_freq_data;
      |                                                          ^~~~~~~~~~~~~~~~

[ 577/1835] Compiling libs/ardour/audio_playlist_importer.cc
[ 578/1835] Compiling libs/ardour/strip_silence.cc
[ 579/1835] Compiling libs/ardour/plugin.cc
[ 580/1835] Compiling libs/ardour/export_channel.cc
[ 581/1835] Compiling libs/ardour/session_configuration.cc
../libs/temporal/tempo.cc: In member function 'boost::intrusive::list<Temporal::Point, boost::intrusive::base_hook<boost::intrusive::list_base_hook<boost::intrusive::tag<Temporal::point_tag> > > >::const_iterator Temporal::TempoMap::get_grid(Temporal::TempoMapPoints&, Temporal::superclock_t, Temporal::superclock_t, uint32_t, uint32_t) const':
../libs/temporal/tempo.cc:2612:39: warning: variable 'beats_delta' set but not used [-Wunused-but-set-variable]
 2612 |                                 Beats beats_delta = _meters.front().to_quarters (delta);
      |                                       ^~~~~~~~~~~
../libs/temporal/tempo.cc: In member function 'void Temporal::TempoMap::paste(const Temporal::TempoMapCutBuffer&, const Temporal::timepos_t&, bool, std::string)':
../libs/temporal/tempo.cc:1110:27: warning: 's' may be used uninitialized [-Wmaybe-uninitialized]
 1110 |         reset_starting_at (s);
      |         ~~~~~~~~~~~~~~~~~~^~~
../libs/temporal/tempo.cc:1022:25: note: 's' was declared here
 1022 |         superclock_t    s;
      |                         ^

[ 582/1835] Compiling libs/ardour/buffer_manager.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/visual.h:32,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/colormap.h:38,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/rgb.h:23,
                 from ../libs/tk/ydkmm/rgb.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/refptr.h:21,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:21,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ydkmm/rgb.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 583/1835] Compiling libs/ardour/srcfilesource.cc
[ 584/1835] Compiling libs/ardour/playlist.cc
[ 585/1835] Compiling libs/ardour/session_command.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/region.cc:8:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/region.cc:6:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 586/1835] Compiling libs/ardour/phase_control.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/rectangle.h:32,
                 from ../libs/tk/ydkmm/rectangle.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/rectangle.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 587/1835] Compiling libs/ardour/iec2ppmdsp.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/rgbcmap.cc:33:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/rgbcmap.cc:6:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 588/1835] Compiling libs/ardour/source_factory.cc
[ 589/1835] Compiling libs/ardour/onset_detector.cc
[ 590/1835] Compiling libs/ardour/mp3filesource.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydkmm/pixbufformat.cc:31:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/pixbufformat.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 591/1835] Compiling libs/ardour/element_import_handler.cc
[ 592/1835] Compiling libs/ardour/gain_control.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/visual.h:32,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/image.h:32,
                 from ../libs/tk/ydkmm/image.cc:8:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/image.cc:6:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 593/1835] Compiling libs/ardour/mp3fileimportable.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/tk/ydkmm/types.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/types.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 594/1835] Compiling libs/ardour/monitor_return.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/visual.h:32,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/colormap.h:38,
                 from ../libs/tk/ydkmm/color.cc:32:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/color.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 595/1835] Compiling libs/ardour/return.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/general.h:23,
                 from ../libs/tk/ydkmm/general.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 596/1835] Compiling libs/ardour/mtc_slave.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixmap.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/bitmap.h:29,
                 from ../libs/tk/ydkmm/bitmap.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/bitmap.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 597/1835] Compiling libs/ardour/globals.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/visual.h:32,
                 from ../libs/tk/ydkmm/visual.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/visual.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 598/1835] Linking build/libs/tk/ytk/libytk.so
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ydkmm/event.cc:8:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/event.cc:6:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 599/1835] Compiling libs/ardour/session_bundles.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/device.h:29,
                 from ../libs/tk/ydkmm/device.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/device.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 600/1835] Compiling libs/ardour/session.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimationiter.h:32,
                 from ../libs/tk/ydkmm/pixbufanimationiter.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/pixbufanimationiter.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydkmm/pixbufanimationiter.cc: In member function 'bool Gdk::PixbufAnimationIter::advance(const Glib::TimeVal&)':
../libs/tk/ydkmm/pixbufanimationiter.cc:167:78: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  167 |   return gdk_pixbuf_animation_iter_advance(gobj(), static_cast<const GTimeVal*>(&current_time));
      |                                                                              ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 601/1835] Compiling libs/ardour/record_enable_control.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:32,
                 from ../libs/tk/ydkmm/pixbufanimation.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/pixbufanimation.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydkmm/pixbufanimation.cc:171:87: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  171 | Glib::RefPtr<PixbufAnimationIter> PixbufAnimation::get_iter(const GTimeVal* start_time)
      |                                                                                       ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 602/1835] Compiling libs/ardour/solo_mute_release.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/display.h:31,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/displaymanager.h:32,
                 from ../libs/tk/ydkmm/displaymanager.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/displaymanager.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 603/1835] Linking build/libs/tk/ztkmm/libztkmm.so
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/visual.h:32,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/colormap.h:38,
                 from ../libs/tk/ydkmm/colormap.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/colormap.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydkmm/colormap.cc: In member function 'int Gdk::Colormap::alloc_colors(Gdk::ArrayHandle_Color&, int, bool, bool, Glib::ArrayHandle<bool, Glib::Container_Helpers::TypeTraits<bool> >&)':
../libs/tk/ydkmm/colormap.cc:45:150: warning: cast from type 'const gboolean*' {aka 'const int*'} to type 'gboolean*' {aka 'int*'} casts away qualifiers [-Wcast-qual]
   45 |   return gdk_colormap_alloc_colors(gobj(), const_cast<GdkColor*>(colors.data()), ncolors, static_cast<int>(writeable), static_cast<int>(best_match), (gboolean*)(success.data()));
      |                                                                                                                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 604/1835] Compiling libs/ardour/vst_plugin.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixmap.h:29,
                 from ../libs/tk/ydkmm/pixmap.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/pixmap.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 605/1835] Compiling libs/ardour/monitor_processor.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixmap.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/bitmap.h:29,
                 from ../libs/tk/ydkmm/wrap_init.cc:16:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/wrap_init.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/wrap_init.cc:29:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 606/1835] Compiling libs/ardour/sndfilesource.cc
[ 607/1835] Compiling libs/ardour/region_factory.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbufloader.h:30,
                 from ../libs/tk/ydkmm/pixbufloader.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/pixbufloader.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbufloader.h:31:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 608/1835] Compiling libs/ardour/sndfileimportable.cc
[ 609/1835] Compiling libs/ardour/ebur128_analysis.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ydkmm/pixbuf.cc:11:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/pixbuf.cc:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 610/1835] Compiling libs/ardour/fixed_delay.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/drawable.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/drawable.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 611/1835] Compiling libs/ardour/monitor_control.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/screen.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/screen.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 612/1835] Linking build/libs/tk/suil/libsuil.so
[ 613/1835] Compiling libs/ardour/mode.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/dragcontext.h:33,
                 from ../libs/tk/ydkmm/dragcontext.cc:8:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/dragcontext.cc:6:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ydkmm/dragcontext.cc:35:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 614/1835] Compiling libs/ardour/readonly_control.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/gc.h:32,
                 from ../libs/tk/ydkmm/gc.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/gc.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 615/1835] Compiling libs/ardour/send.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/display.h:31,
                 from ../libs/tk/ydkmm/display.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/display.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 616/1835] Compiling libs/ardour/vst3_module.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixmap.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/bitmap.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/cursor.h:31,
                 from ../libs/tk/ydkmm/cursor.cc:6:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/cursor.cc:4:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 617/1835] Compiling libs/ardour/mix.cc
[ 618/1835] Compiling libs/ardour/filter.cc
[ 619/1835] Compiling libs/ardour/sndfile_helpers.cc
[ 620/1835] Linking build/libs/zita-resampler/libzita-resampler.a
[ 621/1835] Compiling libs/ardour/vst3_plugin.cc
[ 622/1835] Compiling libs/ardour/dsp_filter.cc
[ 623/1835] Compiling libs/ardour/minibpm.cc
[ 624/1835] Compiling libs/ardour/filesystem_paths.cc
[ 625/1835] Compiling libs/ardour/selection.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/window.cc:8:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ydkmm/window.cc:6:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[ 626/1835] Compiling libs/ardour/session_vst.cc
[ 627/1835] Compiling libs/ardour/session_events.cc
[ 628/1835] Compiling libs/ardour/recent_sessions.cc
[ 629/1835] Compiling libs/ardour/midi_stretch.cc
[ 630/1835] Compiling libs/ardour/surround_return.cc
[ 631/1835] Compiling libs/ardour/file_source.cc
[ 632/1835] Linking build/libs/fluidsynth/liblibfluidsynth.a
[ 633/1835] Compiling libs/ardour/midi_source.cc
[ 634/1835] Compiling libs/ardour/uri_map.cc
[ 635/1835] Linking build/libs/libltc/liblibltc.a
[ 636/1835] Compiling libs/ardour/lxvst_plugin.cc
[ 637/1835] Compiling libs/ardour/simple_export.cc
[ 638/1835] Linking build/libs/temporal/libtemporal.so
[ 639/1835] Linking build/libs/audiographer/libaudiographer.so
[ 640/1835] Linking build/libs/zita-convolver/libzita-convolver.a
[ 641/1835] Linking build/libs/tk/ydkmm/libydkmm.so
[ 642/1835] Compiling libs/ardour/session_transport.cc
[ 643/1835] Compiling libs/ardour/export_timespan.cc
[ 644/1835] Compiling libs/ardour/audioanalyser.cc
[ 645/1835] Compiling libs/ardour/session_state_utils.cc
[ 646/1835] Compiling libs/ardour/midi_clock_slave.cc
[ 647/1835] Compiling libs/ardour/session_rtevents.cc
In file included from /usr/include/boost/math/tools/real_cast.hpp:9,
                 from /usr/include/boost/math/special_functions/fpclassify.hpp:17,
                 from ../libs/ardour/dsp_filter.cc:21:
/usr/include/boost/math/tools/config.hpp:23:6: warning: #warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)" [-Wcpp]
   23 | #    warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)"
      |      ^~~~~~~

[ 648/1835] Compiling libs/ardour/delivery.cc
[ 649/1835] Compiling libs/ardour/triggerbox.cc
[ 650/1835] Compiling libs/ardour/meter.cc
[ 651/1835] Compiling libs/ardour/export_preset.cc
[ 652/1835] Compiling libs/ardour/transpose.cc
[ 653/1835] Compiling libs/ardour/lufs_meter.cc
[ 654/1835] Linking build/libs/evoral/libsmf.a
[ 655/1835] Compiling libs/ardour/io.cc
[ 656/1835] Compiling libs/ardour/location_importer.cc
[ 657/1835] Linking build/libs/ptformat/libptformat.so
[ 658/1835] Compiling libs/ardour/readable.cc
[ 659/1835] Compiling libs/ardour/port_manager.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/tempo_map_importer.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 660/1835] Compiling libs/ardour/export_failed.cc
[ 661/1835] Linking build/libs/evoral/libevoral.so
[ 662/1835] Compiling libs/ardour/mixer_scene.cc
[ 663/1835] Compiling libs/ardour/find_session.cc
[ 664/1835] Compiling libs/ardour/vst3_host.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/readonly_control.cc:21:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 665/1835] Compiling libs/ardour/io_tasklist.cc
[ 666/1835] Compiling libs/ardour/session_playlists.cc
[ 667/1835] Compiling libs/ardour/vst3_scan.cc
In file included from ../libs/ardour/ardour/mp3fileimportable.h:42,
                 from ../libs/ardour/mp3fileimportable.cc:34:
In function 'void ARDOUR::L3_decode_scalefactors(const uint8_t*, uint8_t*, bs_t*, const L3_gr_info_t*, float*, int)',
    inlined from 'void ARDOUR::L3_decode(mp3dec_t*, mp3dec_scratch_t*, L3_gr_info_t*, int)' at ../libs/ardour/ardour/minimp3.h:1250:31,
    inlined from 'int ARDOUR::mp3dec_decode_frame(mp3dec_t*, const uint8_t*, int, mp3d_sample_t*, mp3dec_frame_info_t*)' at ../libs/ardour/ardour/minimp3.h:1778:26:
../libs/ardour/ardour/minimp3.h:701:42: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
  701 |             iscf[gr->n_long_sfb + i + 1] += gr->subblock_gain[1] << sh;
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/ardour/minimp3.h: In function 'int ARDOUR::mp3dec_decode_frame(mp3dec_t*, const uint8_t*, int, mp3d_sample_t*, mp3dec_frame_info_t*)':
../libs/ardour/ardour/minimp3.h:667:26: note: at offset 40 into destination object 'iscf' of size 40
  667 |     uint8_t scf_size[4], iscf[40];
      |                          ^~~~
In function 'void ARDOUR::L3_decode_scalefactors(const uint8_t*, uint8_t*, bs_t*, const L3_gr_info_t*, float*, int)',
    inlined from 'void ARDOUR::L3_decode(mp3dec_t*, mp3dec_scratch_t*, L3_gr_info_t*, int)' at ../libs/ardour/ardour/minimp3.h:1250:31,
    inlined from 'int ARDOUR::mp3dec_decode_frame(mp3dec_t*, const uint8_t*, int, mp3d_sample_t*, mp3dec_frame_info_t*)' at ../libs/ardour/ardour/minimp3.h:1778:26:
../libs/ardour/ardour/minimp3.h:702:42: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
  702 |             iscf[gr->n_long_sfb + i + 2] += gr->subblock_gain[2] << sh;
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/ardour/minimp3.h: In function 'int ARDOUR::mp3dec_decode_frame(mp3dec_t*, const uint8_t*, int, mp3d_sample_t*, mp3dec_frame_info_t*)':
../libs/ardour/ardour/minimp3.h:667:26: note: at offset [41, 511] into destination object 'iscf' of size 40
  667 |     uint8_t scf_size[4], iscf[40];
      |                          ^~~~
In function 'void ARDOUR::L3_decode_scalefactors(const uint8_t*, uint8_t*, bs_t*, const L3_gr_info_t*, float*, int)',
    inlined from 'void ARDOUR::L3_decode(mp3dec_t*, mp3dec_scratch_t*, L3_gr_info_t*, int)' at ../libs/ardour/ardour/minimp3.h:1250:31,
    inlined from 'int ARDOUR::mp3dec_decode_frame(mp3dec_t*, const uint8_t*, int, mp3d_sample_t*, mp3dec_frame_info_t*)' at ../libs/ardour/ardour/minimp3.h:1778:26:
../libs/ardour/ardour/minimp3.h:701:42: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
  701 |             iscf[gr->n_long_sfb + i + 1] += gr->subblock_gain[1] << sh;
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/ardour/minimp3.h: In function 'int ARDOUR::mp3dec_decode_frame(mp3dec_t*, const uint8_t*, int, mp3d_sample_t*, mp3dec_frame_info_t*)':
../libs/ardour/ardour/minimp3.h:667:26: note: at offset 40 into destination object 'iscf' of size 40
  667 |     uint8_t scf_size[4], iscf[40];
      |                          ^~~~
In function 'void ARDOUR::L3_decode_scalefactors(const uint8_t*, uint8_t*, bs_t*, const L3_gr_info_t*, float*, int)',
    inlined from 'void ARDOUR::L3_decode(mp3dec_t*, mp3dec_scratch_t*, L3_gr_info_t*, int)' at ../libs/ardour/ardour/minimp3.h:1250:31,
    inlined from 'int ARDOUR::mp3dec_decode_frame(mp3dec_t*, const uint8_t*, int, mp3d_sample_t*, mp3dec_frame_info_t*)' at ../libs/ardour/ardour/minimp3.h:1778:26:
../libs/ardour/ardour/minimp3.h:702:42: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
  702 |             iscf[gr->n_long_sfb + i + 2] += gr->subblock_gain[2] << sh;
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/ardour/minimp3.h: In function 'int ARDOUR::mp3dec_decode_frame(mp3dec_t*, const uint8_t*, int, mp3d_sample_t*, mp3dec_frame_info_t*)':
../libs/ardour/ardour/minimp3.h:667:26: note: at offset [41, 296] into destination object 'iscf' of size 40
  667 |     uint8_t scf_size[4], iscf[40];
      |                          ^~~~

[ 668/1835] Compiling libs/ardour/fluid_synth.cc
[ 669/1835] Compiling libs/ardour/mtdm.cc
[ 670/1835] Compiling libs/ardour/luascripting.cc
../libs/ardour/mtdm.cc: In member function 'int MTDM::process(size_t, float*, float*)':
../libs/ardour/mtdm.cc:95:23: warning: 'vip' may be used uninitialized [-Wmaybe-uninitialized]
   95 |                 _peak = vip;
      |                 ~~~~~~^~~~~
../libs/ardour/mtdm.cc:61:15: note: 'vip' was declared here
   61 |         float vip, vop, a, c, s;
      |               ^~~

[ 671/1835] Compiling libs/ardour/presentation_info.cc
[ 672/1835] Linking build/libs/midi++2/libmidipp.so
[ 673/1835] Compiling libs/ardour/process_thread.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/solo_mute_release.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 674/1835] Compiling libs/ardour/muteable.cc
[ 675/1835] Compiling libs/ardour/graph.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/srcfilesource.h:28,
                 from ../libs/ardour/srcfilesource.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 676/1835] Compiling libs/ardour/io_processor.cc
[ 677/1835] Compiling libs/ardour/session_export.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/audio_playlist_importer.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 678/1835] Compiling libs/ardour/element_importer.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/audio_region_importer.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 679/1835] Compiling libs/ardour/chan_count.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/monitor_return.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 680/1835] Compiling libs/ardour/control_protocol_manager.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/phase_control.cc:20:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 681/1835] Compiling libs/ardour/revision.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/midi_stretch.cc:27:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 682/1835] Compiling libs/ardour/solo_control.cc
[ 683/1835] Compiling libs/ardour/mute_control.cc
[ 684/1835] Compiling libs/ardour/surround_pannable.cc
[ 685/1835] Compiling libs/ardour/broadcast_info.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../libs/ardour/session_process.cc:39:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/session_process.cc:43:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 686/1835] Compiling libs/ardour/solo_safe_control.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/gain_control.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 687/1835] Compiling libs/ardour/route.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/export_channel.cc:34:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 688/1835] Compiling libs/ardour/unknown_processor.cc
[ 689/1835] Compiling libs/ardour/mute_master.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/session_vst.cc:34:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../libs/ardour/session_vst.cc: In static member function 'static intptr_t ARDOUR::Session::vst_callback(AEffect*, int32_t, int32_t, intptr_t, void*, float)':
../libs/ardour/session_vst.cc:304:53: warning: cast from 'char*' to 'VstMidiEvent*' {aka '_VstMidiEvent*'} increases required alignment of target type [-Wcast-align]
  304 |                                 VstMidiEvent *vme = (VstMidiEvent*) (v->events[n]->dump);
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 690/1835] Compiling libs/ardour/ltc_file_reader.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/filter.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 691/1835] Compiling libs/ardour/graphnode.cc
[ 692/1835] Compiling libs/ardour/session_butler.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/mtc_slave.cc:34:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 693/1835] Compiling libs/ardour/export_formats.cc
[ 694/1835] Compiling libs/ardour/route_group.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/return.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 695/1835] Compiling libs/ardour/convolver.cc
[ 696/1835] Compiling libs/ardour/soundcloud_upload.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/audio_track.cc:51:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/audio_track.cc:42:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 697/1835] Compiling libs/ardour/butler.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/internal_send.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 698/1835] Compiling libs/ardour/port_set.cc
[ 699/1835] Compiling libs/ardour/operations.cc
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/io_tasklist.cc:32:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 700/1835] Compiling libs/ardour/midi_automation_list_binder.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/selection.cc:30:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 701/1835] Compiling libs/ardour/analysis_graph.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/source_factory.cc:38:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/midi_playlist.h:38,
                 from ../libs/ardour/source_factory.cc:36:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 702/1835] Compiling libs/ardour/graph_edges.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/sndfilesource.cc:55:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 703/1835] Compiling libs/ardour/rt_tasklist.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/lxvst_plugin.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 704/1835] Compiling libs/ardour/export_profile_manager.cc
[ 705/1835] Compiling libs/ardour/system_exec.cc
[ 706/1835] Compiling libs/ardour/enums.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/midi_automation_list_binder.h:24,
                 from ../libs/ardour/session_command.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 707/1835] Compiling libs/ardour/ltc_slave.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/send.cc:40:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 708/1835] Compiling libs/ardour/engine_slave.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/monitor_processor.cc:30:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 709/1835] Compiling libs/ardour/midi_buffer.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/lv2_plugin.h:34,
                 from ../libs/ardour/surround_return.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 710/1835] Compiling libs/ardour/session_state.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/file_source.cc:48:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from /usr/include/c++/14.2.0/string:54,
                 from ../libs/pbd/pbd/convert.h:26,
                 from ../libs/ardour/file_source.cc:34:
In member function 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::length() const [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]',
    inlined from 'void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_assign(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.tcc:282:42,
    inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::assign(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:1619:17,
    inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:819:21,
    inlined from 'ARDOUR::FileSource::FileSource(ARDOUR::Session&, const XMLNode&, bool)' at ../libs/ardour/file_source.cc:83:10:
/usr/include/c++/14.2.0/bits/basic_string.h:1084:16: warning: '((const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)((char*)this + 16))[11].std::__cxx11::basic_string<char>::_M_string_length' is used uninitialized [-Wuninitialized]
 1084 |       { return _M_string_length; }
      |                ^~~~~~~~~~~~~~~~
In member function 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::pointer std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_data() const [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]',
    inlined from 'void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_assign(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.tcc:295:44,
    inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::assign(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:1619:17,
    inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:819:21,
    inlined from 'ARDOUR::FileSource::FileSource(ARDOUR::Session&, const XMLNode&, bool)' at ../libs/ardour/file_source.cc:83:10:
/usr/include/c++/14.2.0/bits/basic_string.h:228:28: warning: '((const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)((char*)this + 16))[11].std::__cxx11::basic_string<char>::_M_dataplus.std::__cxx11::basic_string<char>::_Alloc_hider::_M_p' may be used uninitialized [-Wmaybe-uninitialized]
  228 |       { return _M_dataplus._M_p; }
      |                            ^~~~

[ 711/1835] Compiling libs/ardour/pan_controllable.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/midi_clock_slave.cc:40:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 712/1835] Compiling libs/ardour/user_bundle.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/session_bundles.cc:39:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 713/1835] Compiling libs/ardour/plugin_insert.cc
[ 714/1835] Compiling libs/ardour/automation_list.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/vst_plugin.h:26,
                 from ../libs/ardour/vst_plugin.cc:37:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../libs/ardour/vst_plugin.cc: In member function 'virtual ARDOUR::samplecnt_t ARDOUR::VSTPlugin::plugin_latency() const':
../libs/ardour/vst_plugin.cc:660:18: warning: cast from 'char*' to 'int32_t*' {aka 'int*'} increases required alignment of target type [-Wcast-align]
  660 |         return *((int32_t *) (((char *) &_plugin->flags) + 12)); /* initialDelay */
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 715/1835] Compiling libs/ardour/io_plug.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/luaproc.h:42,
                 from ../libs/ardour/plugin.cc:55:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 716/1835] Compiling libs/ardour/rb_effect.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/region_factory.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 717/1835] Compiling libs/ardour/solo_isolate_control.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/readable.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 718/1835] Compiling libs/ardour/reverse.cc
In file included from ../libs/lua/lua-5.3.5/ltable.c:32,
                 from ../libs/lua/lua.cc:71:
../libs/lua/lua-5.3.5/ldebug.c: In function 'void swapextra(lua_State*)':
../libs/lua/lua-5.3.5/ldo.h:33:34: warning: cast from 'char*' to 'TValue*' {aka 'lua_TValue*'} increases required alignment of target type [-Wcast-align]
   33 | #define restorestack(L,n)       ((TValue *)((char *)L->stack + (n)))
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldebug.c:66:16: note: in expansion of macro 'restorestack'
   66 |     ci->func = restorestack(L, ci->extra);
      |                ^~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldebug.c: In function 'void luaG_errormsg(lua_State*)':
../libs/lua/lua-5.3.5/ldo.h:33:34: warning: cast from 'char*' to 'TValue*' {aka 'lua_TValue*'} increases required alignment of target type [-Wcast-align]
   33 | #define restorestack(L,n)       ((TValue *)((char *)L->stack + (n)))
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldebug.c:642:21: note: in expansion of macro 'restorestack'
  642 |     StkId errfunc = restorestack(L, L->errfunc);
      |                     ^~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c: In function 'void luaD_hook(lua_State*, int, int)':
../libs/lua/lua-5.3.5/ldo.h:33:34: warning: cast from 'char*' to 'TValue*' {aka 'lua_TValue*'} increases required alignment of target type [-Wcast-align]
   33 | #define restorestack(L,n)       ((TValue *)((char *)L->stack + (n)))
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c:273:15: note: in expansion of macro 'restorestack'
  273 |     ci->top = restorestack(L, ci_top);
      |               ^~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.h:33:34: warning: cast from 'char*' to 'TValue*' {aka 'lua_TValue*'} increases required alignment of target type [-Wcast-align]
   33 | #define restorestack(L,n)       ((TValue *)((char *)L->stack + (n)))
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c:274:14: note: in expansion of macro 'restorestack'
  274 |     L->top = restorestack(L, top);
      |              ^~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c: In function 'int luaD_poscall(lua_State*, CallInfo*, StkId, int)':
../libs/lua/lua-5.3.5/ldo.h:33:34: warning: cast from 'char*' to 'TValue*' {aka 'lua_TValue*'} increases required alignment of target type [-Wcast-align]
   33 | #define restorestack(L,n)       ((TValue *)((char *)L->stack + (n)))
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c:383:21: note: in expansion of macro 'restorestack'
  383 |       firstResult = restorestack(L, fr);
      |                     ^~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c: In function 'int luaD_precall(lua_State*, StkId, int)':
../libs/lua/lua-5.3.5/ldo.h:33:34: warning: cast from 'char*' to 'TValue*' {aka 'lua_TValue*'} increases required alignment of target type [-Wcast-align]
   33 | #define restorestack(L,n)       ((TValue *)((char *)L->stack + (n)))
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.h:25:40: note: in definition of macro 'luaD_checkstackaux'
   25 |           { pre; luaD_growstack(L, n); pos; } else { condmovestack(L,pre,pos); }
      |                                        ^~~
../libs/lua/lua-5.3.5/ldo.c:403:9: note: in expansion of macro 'restorestack'
  403 |     p = restorestack(L, t__))  /* 'pos' part: restore 'p' */
      |         ^~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c:424:7: note: in expansion of macro 'checkstackp'
  424 |       checkstackp(L, LUA_MINSTACK, func);  /* ensure minimum stack size */
      |       ^~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.h:33:34: warning: cast from 'char*' to 'TValue*' {aka 'lua_TValue*'} increases required alignment of target type [-Wcast-align]
   33 | #define restorestack(L,n)       ((TValue *)((char *)L->stack + (n)))
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.h:25:40: note: in definition of macro 'luaD_checkstackaux'
   25 |           { pre; luaD_growstack(L, n); pos; } else { condmovestack(L,pre,pos); }
      |                                        ^~~
../libs/lua/lua-5.3.5/ldo.c:403:9: note: in expansion of macro 'restorestack'
  403 |     p = restorestack(L, t__))  /* 'pos' part: restore 'p' */
      |         ^~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c:445:7: note: in expansion of macro 'checkstackp'
  445 |       checkstackp(L, fsize, func);
      |       ^~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.h:33:34: warning: cast from 'char*' to 'TValue*' {aka 'lua_TValue*'} increases required alignment of target type [-Wcast-align]
   33 | #define restorestack(L,n)       ((TValue *)((char *)L->stack + (n)))
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.h:25:40: note: in definition of macro 'luaD_checkstackaux'
   25 |           { pre; luaD_growstack(L, n); pos; } else { condmovestack(L,pre,pos); }
      |                                        ^~~
../libs/lua/lua-5.3.5/ldo.c:403:9: note: in expansion of macro 'restorestack'
  403 |     p = restorestack(L, t__))  /* 'pos' part: restore 'p' */
      |         ^~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c:466:7: note: in expansion of macro 'checkstackp'
  466 |       checkstackp(L, 1, func);  /* ensure space for metamethod */
      |       ^~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c: In function 'int recover(lua_State*, int)':
../libs/lua/lua-5.3.5/ldo.h:33:34: warning: cast from 'char*' to 'TValue*' {aka 'lua_TValue*'} increases required alignment of target type [-Wcast-align]
   33 | #define restorestack(L,n)       ((TValue *)((char *)L->stack + (n)))
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c:586:12: note: in expansion of macro 'restorestack'
  586 |   oldtop = restorestack(L, ci->extra);
      |            ^~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c: In function 'void resume(lua_State*, void*)':
../libs/lua/lua-5.3.5/ldo.h:33:34: warning: cast from 'char*' to 'TValue*' {aka 'lua_TValue*'} increases required alignment of target type [-Wcast-align]
   33 | #define restorestack(L,n)       ((TValue *)((char *)L->stack + (n)))
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c:630:16: note: in expansion of macro 'restorestack'
  630 |     ci->func = restorestack(L, ci->extra);
      |                ^~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c: In function 'int luaD_pcall(lua_State*, Pfunc, void*, ptrdiff_t, ptrdiff_t)':
../libs/lua/lua-5.3.5/ldo.h:33:34: warning: cast from 'char*' to 'TValue*' {aka 'lua_TValue*'} increases required alignment of target type [-Wcast-align]
   33 | #define restorestack(L,n)       ((TValue *)((char *)L->stack + (n)))
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/lua-5.3.5/ldo.c:731:20: note: in expansion of macro 'restorestack'
  731 |     StkId oldtop = restorestack(L, old_top);
      |                    ^~~~~~~~~~~~
In file included from ../libs/lua/lua-5.3.5/lobject.h:15,
                 from ../libs/lua/lua-5.3.5/lstate.h:12,
                 from ../libs/lua/lua-5.3.5/ldebug.h:11,
                 from ../libs/lua/lua-5.3.5/ltable.c:31:
../libs/lua/lua-5.3.5/llex.c: In function 'TString* luaX_newstring(LexState*, const char*, size_t)':
../libs/lua/lua-5.3.5/llimits.h:111:26: warning: cast from 'char*' to 'Node*' increases required alignment of target type [-Wcast-align]
  111 | #define cast(t, exp)    ((t)(exp))
      |                          ^~~~~~~~
../libs/lua/lua-5.3.5/llimits.h:90:34: note: in definition of macro 'check_exp'
   90 | #define check_exp(c,e)          (e)
      |                                  ^
../libs/lua/lua-5.3.5/lstate.h:227:9: note: in expansion of macro 'check_exp'
  227 |         check_exp(novariant((o)->tt) == LUA_TSTRING, &((cast_u(o))->ts))
      |         ^~~~~~~~~
../libs/lua/lua-5.3.5/lstate.h:223:25: note: in expansion of macro 'cast'
  223 | #define cast_u(o)       cast(union GCUnion *, (o))
      |                         ^~~~
../libs/lua/lua-5.3.5/lstate.h:227:57: note: in expansion of macro 'cast_u'
  227 |         check_exp(novariant((o)->tt) == LUA_TSTRING, &((cast_u(o))->ts))
      |                                                         ^~~~~~
../libs/lua/lua-5.3.5/lobject.h:169:50: note: in expansion of macro 'gco2ts'
  169 | #define tsvalue(o)      check_exp(ttisstring(o), gco2ts(val_(o).gc))
      |                                                  ^~~~~~
../libs/lua/lua-5.3.5/lobject.h:169:57: note: in expansion of macro 'val_'
  169 | #define tsvalue(o)      check_exp(ttisstring(o), gco2ts(val_(o).gc))
      |                                                         ^~~~
../libs/lua/lua-5.3.5/llex.c:140:10: note: in expansion of macro 'tsvalue'
  140 |     ts = tsvalue(keyfromval(o));  /* re-use value previously stored */
      |          ^~~~~~~
../libs/lua/lua-5.3.5/ltable.h:19:25: note: in expansion of macro 'cast'
   19 | #define gkey(n)         cast(const TValue*, (&(n)->i_key.tvk))
      |                         ^~~~
../libs/lua/lua-5.3.5/ltable.h:40:4: note: in expansion of macro 'gkey'
   40 |   (gkey(cast(Node *, cast(char *, (v)) - offsetof(Node, i_val))))
      |    ^~~~
../libs/lua/lua-5.3.5/ltable.h:40:9: note: in expansion of macro 'cast'
   40 |   (gkey(cast(Node *, cast(char *, (v)) - offsetof(Node, i_val))))
      |         ^~~~
../libs/lua/lua-5.3.5/llex.c:140:18: note: in expansion of macro 'keyfromval'
  140 |     ts = tsvalue(keyfromval(o));  /* re-use value previously stored */
      |                  ^~~~~~~~~~
../libs/lua/lua-5.3.5/lstate.c: In function 'void close_state(lua_State*)':
../libs/lua/lua-5.3.5/llimits.h:111:26: warning: cast from 'lu_byte*' {aka 'unsigned char*'} to 'LX*' increases required alignment of target type [-Wcast-align]
  111 | #define cast(t, exp)    ((t)(exp))
      |                          ^~~~~~~~
../libs/lua/lua-5.3.5/lstate.c:70:26: note: in expansion of macro 'cast'
   70 | #define fromstate(L)    (cast(LX *, cast(lu_byte *, (L)) - offsetof(LX, l)))
      |                          ^~~~
../libs/lua/lua-5.3.5/lstate.c:251:25: note: in expansion of macro 'fromstate'
  251 |   (*g->frealloc)(g->ud, fromstate(L), sizeof(LG), 0);  /* free main block */
      |                         ^~~~~~~~~
../libs/lua/lua-5.3.5/lstate.c: In function 'void luaE_freethread(lua_State*, lua_State*)':
../libs/lua/lua-5.3.5/llimits.h:111:26: warning: cast from 'lu_byte*' {aka 'unsigned char*'} to 'LX*' increases required alignment of target type [-Wcast-align]
  111 | #define cast(t, exp)    ((t)(exp))
      |                          ^~~~~~~~
../libs/lua/lua-5.3.5/lstate.c:70:26: note: in expansion of macro 'cast'
   70 | #define fromstate(L)    (cast(LX *, cast(lu_byte *, (L)) - offsetof(LX, l)))
      |                          ^~~~
../libs/lua/lua-5.3.5/lstate.c:286:11: note: in expansion of macro 'fromstate'
  286 |   LX *l = fromstate(L1);
      |           ^~~~~~~~~
../libs/lua/lua-5.3.5/ltm.c: In function 'void luaT_callTM(lua_State*, const TValue*, const TValue*, const TValue*, TValue*, int)':
../libs/lua/lua-5.3.5/ldo.h:33:34: warning: cast from 'char*' to 'TValue*' {aka 'lua_TValue*'} increases required alignment of target type [-Wcast-align]
   33 | #define restorestack(L,n)       ((TValue *)((char *)L->stack + (n)))
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/lua-5.3.5/ltm.c:118:10: note: in expansion of macro 'restorestack'
  118 |     p3 = restorestack(L, result);
      |          ^~~~~~~~~~~~

[ 719/1835] Compiling libs/ardour/quantize.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/export_preset.cc:24:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 720/1835] Compiling libs/ardour/midi_channel_filter.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/session_rtevents.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 721/1835] Linking build/libs/lua/libliblua.a
[ 722/1835] Compiling libs/ardour/ticker.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/midi_source.cc:53:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 723/1835] Compiling libs/ardour/session_midi.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/location_importer.cc:27:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 724/1835] Compiling libs/ardour/source.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/delivery.cc:39:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 725/1835] Compiling libs/ardour/amp.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../libs/ardour/session_transport.cc:49:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/session_transport.cc:55:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 726/1835] Compiling libs/ardour/export_format_base.cc
[ 727/1835] Compiling libs/ardour/pannable.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_manager.h:39,
                 from ../libs/ardour/globals.cc:117:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../libs/ardour/globals.cc: In function 'void setup_hardware_optimization(bool)':
../libs/ardour/globals.cc:193:22: warning: unused variable 'fpu' [-Wunused-variable]
  193 |                 FPU* fpu = FPU::instance ();
      |                      ^~~
../libs/ardour/globals.cc: In function 'void ARDOUR::setup_fpu()':
../libs/ardour/globals.cc:876:14: warning: unused variable 'fpu' [-Wunused-variable]
  876 |         FPU* fpu = FPU::instance ();
      |              ^~~

[ 728/1835] Compiling libs/ardour/utils.cc
[ 729/1835] Compiling libs/ardour/ladspa_plugin.cc
[ 730/1835] Compiling libs/ardour/export_format_specification.cc
[ 731/1835] Compiling libs/ardour/session_click.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/export_handler.h:36,
                 from ../libs/ardour/ardour/export_profile_manager.h:38,
                 from ../libs/ardour/simple_export.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 732/1835] Compiling libs/ardour/export_smf_writer.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/mixer_scene.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 733/1835] Compiling libs/ardour/analyser.cc
[ 734/1835] Compiling libs/ardour/iec1ppmdsp.cc
[ 735/1835] Compiling libs/ardour/raw_midi_parser.cc
[ 736/1835] Compiling libs/ardour/async_midi_port.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/broadcast_info.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 737/1835] Compiling libs/ardour/debug.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/meter.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 738/1835] Compiling libs/ardour/lv2_evbuf.cc
[ 739/1835] Compiling libs/ardour/rc_configuration.cc
[ 740/1835] Compiling libs/ardour/rt_midibuffer.cc
[ 741/1835] Compiling libs/ardour/route_group_member.cc
[ 742/1835] Compiling libs/ardour/panner.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/element_importer.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 743/1835] Compiling libs/ardour/vca.cc
[ 744/1835] Compiling libs/ardour/audio_library.cc
[ 745/1835] Compiling libs/ardour/chan_mapping.cc
[ 746/1835] Compiling libs/ardour/directory_names.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/session_butler.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/session_butler.cc:27:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 747/1835] Compiling libs/ardour/config_text.cc
[ 748/1835] Compiling libs/ardour/track.cc
[ 749/1835] Compiling libs/ardour/panner_manager.cc
[ 750/1835] Compiling libs/ardour/audio_playlist.cc
[ 751/1835] Compiling libs/ardour/midi_model.cc
[ 752/1835] Compiling libs/ardour/panner_shell.cc
[ 753/1835] Compiling libs/ardour/audio_playlist_source.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/mute_master.cc:28:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 754/1835] Compiling libs/ardour/audio_port.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/solo_safe_control.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 755/1835] Compiling libs/ardour/session_metadata.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/mute_control.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 756/1835] Compiling libs/ardour/thawlist.cc
[ 757/1835] Compiling libs/ardour/parameter_descriptor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/export_handler.h:36,
                 from ../libs/ardour/ardour/soundcloud_upload.h:19,
                 from ../libs/ardour/soundcloud_upload.cc:21:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../libs/ardour/soundcloud_upload.cc: In member function 'std::string SoundcloudUploader::Get_Auth_Token(std::string, std::string)':
../libs/ardour/soundcloud_upload.cc:77:25: warning: 'CURLFORM_COPYNAME' is deprecated: since 7.56.0. Use curl_mime_name() [-Wdeprecated-declarations]
   77 |                         CURLFORM_COPYNAME, "client_id",
      |                         ^~~~~~~~~~~~~~~~~
In file included from ../libs/ardour/ardour/soundcloud_upload.h:17:
/usr/include/curl/curl.h:2519:3: note: declared here
 2519 |   CURLFORM_COPYNAME        CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"),
      |   ^~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:78:25: warning: 'CURLFORM_COPYCONTENTS' is deprecated: since 7.56.0. Use curl_mime_data() [-Wdeprecated-declarations]
   78 |                         CURLFORM_COPYCONTENTS, "6dd9cf0ad281aa57e07745082cec580b",
      |                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2522:3: note: declared here
 2522 |   CURLFORM_COPYCONTENTS    CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
      |   ^~~~~~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:75:21: warning: 'CURLFORMcode curl_formadd(curl_httppost**, curl_httppost**, ...)' is deprecated: since 7.56.0. Use curl_mime_init() [-Wdeprecated-declarations]
   75 |         curl_formadd(&formpost,
      |         ~~~~~~~~~~~~^~~~~~~~~~~
   76 |                         &lastptr,
      |                         ~~~~~~~~~
   77 |                         CURLFORM_COPYNAME, "client_id",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   78 |                         CURLFORM_COPYCONTENTS, "6dd9cf0ad281aa57e07745082cec580b",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   79 |                         CURLFORM_END);
      |                         ~~~~~~~~~~~~~
/usr/include/curl/curl.h:2594:1: note: declared here
 2594 | curl_formadd(struct curl_httppost **httppost,
      | ^~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:83:25: warning: 'CURLFORM_COPYNAME' is deprecated: since 7.56.0. Use curl_mime_name() [-Wdeprecated-declarations]
   83 |                         CURLFORM_COPYNAME, "client_secret",
      |                         ^~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2519:3: note: declared here
 2519 |   CURLFORM_COPYNAME        CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"),
      |   ^~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:84:25: warning: 'CURLFORM_COPYCONTENTS' is deprecated: since 7.56.0. Use curl_mime_data() [-Wdeprecated-declarations]
   84 |                         CURLFORM_COPYCONTENTS, "53f5b0113fb338800f8a7a9904fc3569",
      |                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2522:3: note: declared here
 2522 |   CURLFORM_COPYCONTENTS    CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
      |   ^~~~~~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:81:21: warning: 'CURLFORMcode curl_formadd(curl_httppost**, curl_httppost**, ...)' is deprecated: since 7.56.0. Use curl_mime_init() [-Wdeprecated-declarations]
   81 |         curl_formadd(&formpost,
      |         ~~~~~~~~~~~~^~~~~~~~~~~
   82 |                         &lastptr,
      |                         ~~~~~~~~~
   83 |                         CURLFORM_COPYNAME, "client_secret",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   84 |                         CURLFORM_COPYCONTENTS, "53f5b0113fb338800f8a7a9904fc3569",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   85 |                         CURLFORM_END);
      |                         ~~~~~~~~~~~~~
/usr/include/curl/curl.h:2594:1: note: declared here
 2594 | curl_formadd(struct curl_httppost **httppost,
      | ^~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:89:25: warning: 'CURLFORM_COPYNAME' is deprecated: since 7.56.0. Use curl_mime_name() [-Wdeprecated-declarations]
   89 |                         CURLFORM_COPYNAME, "grant_type",
      |                         ^~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2519:3: note: declared here
 2519 |   CURLFORM_COPYNAME        CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"),
      |   ^~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:90:25: warning: 'CURLFORM_COPYCONTENTS' is deprecated: since 7.56.0. Use curl_mime_data() [-Wdeprecated-declarations]
   90 |                         CURLFORM_COPYCONTENTS, "password",
      |                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2522:3: note: declared here
 2522 |   CURLFORM_COPYCONTENTS    CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
      |   ^~~~~~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:87:21: warning: 'CURLFORMcode curl_formadd(curl_httppost**, curl_httppost**, ...)' is deprecated: since 7.56.0. Use curl_mime_init() [-Wdeprecated-declarations]
   87 |         curl_formadd(&formpost,
      |         ~~~~~~~~~~~~^~~~~~~~~~~
   88 |                         &lastptr,
      |                         ~~~~~~~~~
   89 |                         CURLFORM_COPYNAME, "grant_type",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   90 |                         CURLFORM_COPYCONTENTS, "password",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   91 |                         CURLFORM_END);
      |                         ~~~~~~~~~~~~~
/usr/include/curl/curl.h:2594:1: note: declared here
 2594 | curl_formadd(struct curl_httppost **httppost,
      | ^~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:95:25: warning: 'CURLFORM_COPYNAME' is deprecated: since 7.56.0. Use curl_mime_name() [-Wdeprecated-declarations]
   95 |                         CURLFORM_COPYNAME, "username",
      |                         ^~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2519:3: note: declared here
 2519 |   CURLFORM_COPYNAME        CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"),
      |   ^~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:96:25: warning: 'CURLFORM_COPYCONTENTS' is deprecated: since 7.56.0. Use curl_mime_data() [-Wdeprecated-declarations]
   96 |                         CURLFORM_COPYCONTENTS, username.c_str(),
      |                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2522:3: note: declared here
 2522 |   CURLFORM_COPYCONTENTS    CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
      |   ^~~~~~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:93:21: warning: 'CURLFORMcode curl_formadd(curl_httppost**, curl_httppost**, ...)' is deprecated: since 7.56.0. Use curl_mime_init() [-Wdeprecated-declarations]
   93 |         curl_formadd(&formpost,
      |         ~~~~~~~~~~~~^~~~~~~~~~~
   94 |                         &lastptr,
      |                         ~~~~~~~~~
   95 |                         CURLFORM_COPYNAME, "username",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   96 |                         CURLFORM_COPYCONTENTS, username.c_str(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   97 |                         CURLFORM_END);
      |                         ~~~~~~~~~~~~~
/usr/include/curl/curl.h:2594:1: note: declared here
 2594 | curl_formadd(struct curl_httppost **httppost,
      | ^~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:101:25: warning: 'CURLFORM_COPYNAME' is deprecated: since 7.56.0. Use curl_mime_name() [-Wdeprecated-declarations]
  101 |                         CURLFORM_COPYNAME, "password",
      |                         ^~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2519:3: note: declared here
 2519 |   CURLFORM_COPYNAME        CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"),
      |   ^~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:102:25: warning: 'CURLFORM_COPYCONTENTS' is deprecated: since 7.56.0. Use curl_mime_data() [-Wdeprecated-declarations]
  102 |                         CURLFORM_COPYCONTENTS, password.c_str(),
      |                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2522:3: note: declared here
 2522 |   CURLFORM_COPYCONTENTS    CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
      |   ^~~~~~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:99:21: warning: 'CURLFORMcode curl_formadd(curl_httppost**, curl_httppost**, ...)' is deprecated: since 7.56.0. Use curl_mime_init() [-Wdeprecated-declarations]
   99 |         curl_formadd(&formpost,
      |         ~~~~~~~~~~~~^~~~~~~~~~~
  100 |                         &lastptr,
      |                         ~~~~~~~~~
  101 |                         CURLFORM_COPYNAME, "password",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  102 |                         CURLFORM_COPYCONTENTS, password.c_str(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  103 |                         CURLFORM_END);
      |                         ~~~~~~~~~~~~~
/usr/include/curl/curl.h:2594:1: note: declared here
 2594 | curl_formadd(struct curl_httppost **httppost,
      | ^~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:113:39: warning: 'CURLOPT_HTTPPOST' is deprecated: since 7.56.0. Use CURLOPT_MIMEPOST [-Wdeprecated-declarations]
  113 |         curl_easy_setopt(curl_handle, CURLOPT_HTTPPOST, formpost);
      |                                       ^~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:1205:3: note: declared here
 1205 |   CURLOPTDEPRECATED(CURLOPT_HTTPPOST, CURLOPTTYPE_OBJECTPOINT, 24,
      |   ^~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc: In member function 'std::string SoundcloudUploader::Upload(std::string, std::string, std::string, bool, bool, ARDOUR::ExportHandler*)':
../libs/ardour/soundcloud_upload.cc:175:25: warning: 'CURLFORM_COPYNAME' is deprecated: since 7.56.0. Use curl_mime_name() [-Wdeprecated-declarations]
  175 |                         CURLFORM_COPYNAME, "track[asset_data]",
      |                         ^~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2519:3: note: declared here
 2519 |   CURLFORM_COPYNAME        CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"),
      |   ^~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:176:25: warning: 'CURLFORM_FILE' is deprecated: since 7.56.0. Use curl_mime_filedata() [-Wdeprecated-declarations]
  176 |                         CURLFORM_FILE, file_path.c_str(),
      |                         ^~~~~~~~~~~~~
/usr/include/curl/curl.h:2528:3: note: declared here
 2528 |   CURLFORM_FILE            CURL_DEPRECATED(7.56.0, "Use curl_mime_filedata()"),
      |   ^~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:173:21: warning: 'CURLFORMcode curl_formadd(curl_httppost**, curl_httppost**, ...)' is deprecated: since 7.56.0. Use curl_mime_init() [-Wdeprecated-declarations]
  173 |         curl_formadd(&formpost,
      |         ~~~~~~~~~~~~^~~~~~~~~~~
  174 |                         &lastptr,
      |                         ~~~~~~~~~
  175 |                         CURLFORM_COPYNAME, "track[asset_data]",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  176 |                         CURLFORM_FILE, file_path.c_str(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  177 |                         CURLFORM_END);
      |                         ~~~~~~~~~~~~~
/usr/include/curl/curl.h:2594:1: note: declared here
 2594 | curl_formadd(struct curl_httppost **httppost,
      | ^~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:182:25: warning: 'CURLFORM_COPYNAME' is deprecated: since 7.56.0. Use curl_mime_name() [-Wdeprecated-declarations]
  182 |                         CURLFORM_COPYNAME, "oauth_token",
      |                         ^~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2519:3: note: declared here
 2519 |   CURLFORM_COPYNAME        CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"),
      |   ^~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:183:25: warning: 'CURLFORM_COPYCONTENTS' is deprecated: since 7.56.0. Use curl_mime_data() [-Wdeprecated-declarations]
  183 |                         CURLFORM_COPYCONTENTS, token.c_str(),
      |                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2522:3: note: declared here
 2522 |   CURLFORM_COPYCONTENTS    CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
      |   ^~~~~~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:180:21: warning: 'CURLFORMcode curl_formadd(curl_httppost**, curl_httppost**, ...)' is deprecated: since 7.56.0. Use curl_mime_init() [-Wdeprecated-declarations]
  180 |         curl_formadd(&formpost,
      |         ~~~~~~~~~~~~^~~~~~~~~~~
  181 |                         &lastptr,
      |                         ~~~~~~~~~
  182 |                         CURLFORM_COPYNAME, "oauth_token",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  183 |                         CURLFORM_COPYCONTENTS, token.c_str(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  184 |                         CURLFORM_END);
      |                         ~~~~~~~~~~~~~
/usr/include/curl/curl.h:2594:1: note: declared here
 2594 | curl_formadd(struct curl_httppost **httppost,
      | ^~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:188:25: warning: 'CURLFORM_COPYNAME' is deprecated: since 7.56.0. Use curl_mime_name() [-Wdeprecated-declarations]
  188 |                         CURLFORM_COPYNAME, "track[title]",
      |                         ^~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2519:3: note: declared here
 2519 |   CURLFORM_COPYNAME        CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"),
      |   ^~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:189:25: warning: 'CURLFORM_COPYCONTENTS' is deprecated: since 7.56.0. Use curl_mime_data() [-Wdeprecated-declarations]
  189 |                         CURLFORM_COPYCONTENTS, title.c_str(),
      |                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2522:3: note: declared here
 2522 |   CURLFORM_COPYCONTENTS    CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
      |   ^~~~~~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:186:21: warning: 'CURLFORMcode curl_formadd(curl_httppost**, curl_httppost**, ...)' is deprecated: since 7.56.0. Use curl_mime_init() [-Wdeprecated-declarations]
  186 |         curl_formadd(&formpost,
      |         ~~~~~~~~~~~~^~~~~~~~~~~
  187 |                         &lastptr,
      |                         ~~~~~~~~~
  188 |                         CURLFORM_COPYNAME, "track[title]",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  189 |                         CURLFORM_COPYCONTENTS, title.c_str(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  190 |                         CURLFORM_END);
      |                         ~~~~~~~~~~~~~
/usr/include/curl/curl.h:2594:1: note: declared here
 2594 | curl_formadd(struct curl_httppost **httppost,
      | ^~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:194:25: warning: 'CURLFORM_COPYNAME' is deprecated: since 7.56.0. Use curl_mime_name() [-Wdeprecated-declarations]
  194 |                         CURLFORM_COPYNAME, "track[sharing]",
      |                         ^~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2519:3: note: declared here
 2519 |   CURLFORM_COPYNAME        CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"),
      |   ^~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:195:25: warning: 'CURLFORM_COPYCONTENTS' is deprecated: since 7.56.0. Use curl_mime_data() [-Wdeprecated-declarations]
  195 |                         CURLFORM_COPYCONTENTS, ispublic ? "public" : "private",
      |                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2522:3: note: declared here
 2522 |   CURLFORM_COPYCONTENTS    CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
      |   ^~~~~~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:192:21: warning: 'CURLFORMcode curl_formadd(curl_httppost**, curl_httppost**, ...)' is deprecated: since 7.56.0. Use curl_mime_init() [-Wdeprecated-declarations]
  192 |         curl_formadd(&formpost,
      |         ~~~~~~~~~~~~^~~~~~~~~~~
  193 |                         &lastptr,
      |                         ~~~~~~~~~
  194 |                         CURLFORM_COPYNAME, "track[sharing]",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  195 |                         CURLFORM_COPYCONTENTS, ispublic ? "public" : "private",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  196 |                         CURLFORM_END);
      |                         ~~~~~~~~~~~~~
/usr/include/curl/curl.h:2594:1: note: declared here
 2594 | curl_formadd(struct curl_httppost **httppost,
      | ^~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:200:25: warning: 'CURLFORM_COPYNAME' is deprecated: since 7.56.0. Use curl_mime_name() [-Wdeprecated-declarations]
  200 |                         CURLFORM_COPYNAME, "track[downloadable]",
      |                         ^~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2519:3: note: declared here
 2519 |   CURLFORM_COPYNAME        CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"),
      |   ^~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:201:25: warning: 'CURLFORM_COPYCONTENTS' is deprecated: since 7.56.0. Use curl_mime_data() [-Wdeprecated-declarations]
  201 |                         CURLFORM_COPYCONTENTS, downloadable ? "true" : "false",
      |                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:2522:3: note: declared here
 2522 |   CURLFORM_COPYCONTENTS    CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
      |   ^~~~~~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:198:21: warning: 'CURLFORMcode curl_formadd(curl_httppost**, curl_httppost**, ...)' is deprecated: since 7.56.0. Use curl_mime_init() [-Wdeprecated-declarations]
  198 |         curl_formadd(&formpost,
      |         ~~~~~~~~~~~~^~~~~~~~~~~
  199 |                         &lastptr,
      |                         ~~~~~~~~~
  200 |                         CURLFORM_COPYNAME, "track[downloadable]",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  201 |                         CURLFORM_COPYCONTENTS, downloadable ? "true" : "false",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  202 |                         CURLFORM_END);
      |                         ~~~~~~~~~~~~~
/usr/include/curl/curl.h:2594:1: note: declared here
 2594 | curl_formadd(struct curl_httppost **httppost,
      | ^~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:221:47: warning: 'CURLOPT_HTTPPOST' is deprecated: since 7.56.0. Use CURLOPT_MIMEPOST [-Wdeprecated-declarations]
  221 |                 curl_easy_setopt(curl_handle, CURLOPT_HTTPPOST, formpost);
      |                                               ^~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:1205:3: note: declared here
 1205 |   CURLOPTDEPRECATED(CURLOPT_HTTPPOST, CURLOPTTYPE_OBJECTPOINT, 24,
      |   ^~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:227:48: warning: 'CURLOPT_PROGRESSFUNCTION' is deprecated: since 7.32.0. Use CURLOPT_XFERINFOFUNCTION [-Wdeprecated-declarations]
  227 |                 curl_easy_setopt (curl_handle, CURLOPT_PROGRESSFUNCTION, &SoundcloudUploader::progress_callback);
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:1304:3: note: declared here
 1304 |   CURLOPTDEPRECATED(CURLOPT_PROGRESSFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 56,
      |   ^~~~~~~~~~~~~~~~~
../libs/ardour/soundcloud_upload.cc:287:30: warning: 'void curl_formfree(curl_httppost*)' is deprecated: since 7.56.0. Use curl_mime_free() [-Wdeprecated-declarations]
  287 |                 curl_formfree(formpost);
      |                 ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/curl/curl.h:2630:1: note: declared here
 2630 | curl_formfree(struct curl_httppost *form);
      | ^~~~~~~~~~~~~

[ 758/1835] Compiling libs/ardour/vca_manager.cc
[ 759/1835] Compiling libs/ardour/export_status.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/io_plug.h:31,
                 from ../libs/ardour/graph.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../libs/ardour/graph.cc: In member function 'void ARDOUR::Graph::process_one_route(ARDOUR::Route*)':
../libs/ardour/graph.cc:554:9: warning: 'retval' may be used uninitialized [-Wmaybe-uninitialized]
  554 |         if (retval) {
      |         ^~
../libs/ardour/graph.cc:535:14: note: 'retval' was declared here
  535 |         int  retval;
      |              ^~~~~~

[ 760/1835] Compiling libs/ardour/speakers.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/io_processor.cc:34:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 761/1835] Compiling libs/ardour/scene_change.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/solo_control.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 762/1835] Compiling libs/ardour/audio_track_importer.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/surround_pannable.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 763/1835] Compiling libs/ardour/library.cc
[ 764/1835] Compiling libs/ardour/lua_api.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/control_protocol_manager.cc:56:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 765/1835] Compiling libs/ardour/midi_patch_manager.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/export_handler.h:36,
                 from ../libs/ardour/session_export.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 766/1835] Compiling libs/ardour/audiofile_tagger.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../libs/ardour/butler.cc:41:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/butler.cc:44:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 767/1835] Compiling libs/ardour/import.cc
[ 768/1835] Compiling libs/ardour/session_time.cc
[ 769/1835] Compiling libs/ardour/audiofilesource.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/convolver.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 770/1835] Compiling libs/ardour/kmeterdsp.cc
[ 771/1835] Compiling libs/ardour/location.cc
[ 772/1835] Compiling libs/ardour/default_click.cc
[ 773/1835] Compiling libs/ardour/playlist_factory.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/midi_automation_list_binder.h:24,
                 from ../libs/ardour/midi_automation_list_binder.cc:20:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 774/1835] Compiling libs/ardour/velocity_control.cc
[ 775/1835] Compiling libs/ardour/audioregion.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/engine_slave.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 776/1835] Compiling libs/ardour/playlist_source.cc
[ 777/1835] Compiling libs/ardour/audiorom.cc
In file included from ../libs/ardour/rt_midibuffer.cc:30:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/rt_midibuffer.cc: In member function 'void ARDOUR::RTMidiBuffer::dump(uint32_t)':
../libs/ardour/rt_midibuffer.cc:167:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
  167 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/rt_midibuffer.cc: In member function 'void ARDOUR::RTMidiBuffer::track(ARDOUR::MidiStateTracker&, ARDOUR::samplepos_t, ARDOUR::samplepos_t)':
../libs/ardour/rt_midibuffer.cc:313:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
  313 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/rt_midibuffer.cc: In member function 'uint32_t ARDOUR::RTMidiBuffer::read(ARDOUR::MidiBuffer&, ARDOUR::samplepos_t, ARDOUR::samplepos_t, ARDOUR::MidiNoteTracker&, ARDOUR::samplecnt_t)':
../libs/ardour/rt_midibuffer.cc:409:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
  409 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/rt_midibuffer.cc: In member function 'uint32_t ARDOUR::RTMidiBuffer::store_blob(uint32_t, const uint8_t*)':
../libs/ardour/rt_midibuffer.cc:480:11: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'uint32_t*' {aka 'unsigned int*'} increases required alignment of target type [-Wcast-align]
  480 |         *(reinterpret_cast<uint32_t*> (addr)) = size;
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 778/1835] Compiling libs/ardour/midi_playlist.cc
[ 779/1835] Compiling libs/ardour/export_format_manager.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/solo_isolate_control.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 780/1835] Compiling libs/ardour/event_type_map.cc
[ 781/1835] Compiling libs/ardour/resampled_source.cc
[ 782/1835] Compiling libs/ardour/automatable.cc
[ 783/1835] Compiling libs/ardour/thread_buffers.cc
[ 784/1835] Compiling libs/ardour/auditioner.cc
[ 785/1835] Compiling libs/ardour/cycle_timer.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/io.cc:53:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 786/1835] Compiling libs/ardour/region_fx_plugin.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/port_manager.cc:49:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 787/1835] Compiling libs/ardour/latent.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ticker.cc:35:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../libs/ardour/ticker.cc: In member function 'double ARDOUR::MidiClockTicker::one_ppqn_in_samples(ARDOUR::samplepos_t) const':
../libs/ardour/ticker.cc:221:28: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  221 |         TempoPoint const & tempo (TempoMap::use()->metric_at (timepos_t (transport_position)).tempo());
      |                            ^~~~~
../libs/ardour/ticker.cc:221:100: note: the temporary was destroyed at the end of the full expression 'Temporal::TempoMap::metric_at(const Temporal::timepos_t&) const(Temporal::timepos_t(transport_position)).Temporal::TempoMetric::tempo()'
  221 |         TempoPoint const & tempo (TempoMap::use()->metric_at (timepos_t (transport_position)).tempo());
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~

[ 788/1835] Compiling libs/ardour/plug_insert_base.cc
[ 789/1835] Compiling libs/ardour/video_tools_paths.cc
[ 790/1835] Compiling libs/ardour/automation_control.cc
[ 791/1835] Compiling libs/ardour/import_pt.cc
[ 792/1835] Compiling libs/ardour/automation_watch.cc
[ 793/1835] Compiling libs/ardour/midi_port.cc
[ 794/1835] Compiling libs/ardour/transient_detector.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ltc_slave.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 795/1835] Compiling libs/ardour/clip_library.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/route_group.cc:39:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 796/1835] Compiling libs/ardour/disk_io.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/rb_effect.cc:35:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 797/1835] Compiling libs/ardour/audio_backend.cc
[ 798/1835] Compiling libs/ardour/stripable.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/session_click.cc:30:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 799/1835] Compiling libs/ardour/record_safe_control.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/session_midi.cc:53:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 800/1835] Compiling libs/ardour/vumeterdsp.cc
[ 801/1835] Compiling libs/ardour/port_insert.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/export_handler.h:36,
                 from ../libs/ardour/ardour/export_graph_builder.h:25,
                 from ../libs/ardour/export_graph_builder.cc:62:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 802/1835] Compiling libs/ardour/circular_buffer.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/amp.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 803/1835] Compiling libs/ardour/audiosource.cc
[ 804/1835] Compiling libs/ardour/surround_send.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/analysis_graph.cc:24:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 805/1835] Compiling libs/ardour/plugin_manager.cc
[ 806/1835] Compiling libs/ardour/midi_region.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/pannable.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 807/1835] Compiling libs/ardour/worker.cc
[ 808/1835] Compiling libs/ardour/audio_buffer.cc
[ 809/1835] Compiling libs/ardour/search_paths.cc
In file included from ../libs/ardour/ardour/cycle_timer.h:29,
                 from ../libs/ardour/cycle_timer.cc:24:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 810/1835] Compiling libs/ardour/ffmpegfileimportable.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/source.cc:46:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 811/1835] Compiling libs/ardour/legatize.cc
[ 812/1835] Compiling libs/ardour/instrument_info.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/playlist.cc:49:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 813/1835] Compiling libs/ardour/midi_ring_buffer.cc
[ 814/1835] Compiling libs/ardour/sidechain.cc
In file included from /usr/include/c++/14.2.0/cstring:43,
                 from ../libs/pbd/pbd/ringbuffer.h:27,
                 from ../libs/ardour/ardour/circular_buffer.h:25,
                 from ../libs/ardour/circular_buffer.cc:19:
In function 'void* memset(void*, int, size_t)',
    inlined from 'void ARDOUR::CircularSampleBuffer::silence(size_t)' at ../libs/ardour/circular_buffer.cc:55:10:
/usr/include/fortify/string.h:75:32: warning: 'vec.PBD::RingBuffer<float>::rw_vector::buf[1]' may be used uninitialized [-Wmaybe-uninitialized]
   75 |         return __builtin_memset(__d, __c, __n);
      |                ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/ardour/circular_buffer.cc: In member function 'void ARDOUR::CircularSampleBuffer::silence(size_t)':
../libs/ardour/circular_buffer.cc:48:44: note: 'vec.PBD::RingBuffer<float>::rw_vector::buf[1]' was declared here
   48 |         PBD::RingBuffer<Sample>::rw_vector vec;
      |                                            ^~~

[ 815/1835] Compiling libs/ardour/plugin_scan_result.cc
[ 816/1835] Compiling libs/ardour/zeroconf.cc
[ 817/1835] Compiling libs/ardour/ffmpegfilesource.cc
[ 818/1835] Compiling libs/ardour/export_handler.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/vca.cc:28:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 819/1835] Compiling libs/ardour/processor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/default_click.cc:20:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 820/1835] Compiling libs/ardour/session_directory.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/export_handler.h:36,
                 from ../libs/ardour/export_profile_manager.cc:45:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 821/1835] Compiling libs/ardour/midi_scene_change.cc
In file included from ../libs/ardour/ardour/midi_playlist.h:38,
                 from ../libs/ardour/playlist_factory.cc:26:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 822/1835] Compiling libs/ardour/capturing_processor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/export_format_specification.cc:28:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 823/1835] Compiling libs/ardour/port.cc
[ 824/1835] Compiling libs/ardour/lv2_plugin.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/audio_playlist_source.cc:38:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 825/1835] Compiling libs/ardour/buffer_set.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/vca_manager.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 826/1835] Compiling libs/ardour/delayline.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/session_time.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 827/1835] Compiling libs/ardour/export_filename.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ladspa_plugin.cc:57:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 828/1835] Compiling libs/ardour/disk_reader.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/io_plug.h:31,
                 from ../libs/ardour/io_plug.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 829/1835] Compiling libs/ardour/segment_descriptor.cc
[ 830/1835] Compiling libs/ardour/luaproc.cc
[ 831/1835] Compiling libs/ardour/midi_state_tracker.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/velocity_control.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 832/1835] Compiling libs/ardour/slavable.cc
[ 833/1835] Compiling libs/ardour/midi_scene_changer.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/audiofilesource.cc:57:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 834/1835] Compiling libs/ardour/buffer.cc
[ 835/1835] Compiling libs/ardour/tailtime.cc
[ 836/1835] Compiling libs/ardour/data_type.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/audio_track_importer.cc:27:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/audio_track_importer.cc:26:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 837/1835] Compiling libs/ardour/port_engine_shared.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/panner_shell.cc:58:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 838/1835] Compiling libs/ardour/control_group.cc
[ 839/1835] Compiling libs/ardour/transport_master.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../libs/ardour/triggerbox.cc:40:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../libs/ardour/triggerbox.cc:1024:2: warning: #warning when Global Quantize is implemented, use that instead of '1 bar' here [-Wcpp]
 1024 | #warning when Global Quantize is implemented, use that instead of '1 bar' here
      |  ^~~~~~~
In file included from ../libs/evoral/evoral/types.h:33,
                 from ../libs/evoral/evoral/Event.h:34,
                 from ../libs/ardour/ardour/async_midi_port.h:33,
                 from ../libs/ardour/triggerbox.cc:39:
../libs/ardour/triggerbox.cc: In member function 'void ARDOUR::AudioTrigger::estimate_tempo()':
../libs/ardour/triggerbox.cc:1719:44: warning: statement has no effect [-Wunused-value]
 1719 |                 DEBUG_RESULT (double, est, _estimated_tempo);
      |                                            ^~~~~~~~~~~~~~~~
../libs/pbd/pbd/debug.h:116:36: note: in definition of macro 'DEBUG_RESULT'
  116 | #define DEBUG_RESULT(type,var,...) __VA_ARGS__
      |                                    ^~~~~~~~~~~

[ 840/1835] Compiling libs/ardour/filename_extensions.cc
[ 841/1835] Compiling libs/ardour/linux_vst_support.cc
[ 842/1835] Compiling libs/ardour/automation.cc
[ 843/1835] Compiling libs/ardour/session_ltc.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/audio_playlist.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 844/1835] Compiling libs/ardour/slavable_automation_control.cc
[ 845/1835] Compiling libs/ardour/midi_track.cc
[ 846/1835] Compiling libs/ardour/audioengine.cc
[ 847/1835] Compiling libs/ardour/disk_writer.cc
[ 848/1835] Compiling libs/ardour/midi_ui.cc
[ 849/1835] Compiling libs/ardour/monitor_port.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/midi_port.cc:34:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 850/1835] Compiling libs/ardour/transport_fsm.cc
[ 851/1835] Compiling libs/ardour/polarity_processor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/vst3_plugin.cc:44:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 852/1835] Compiling libs/ardour/mididm.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/lv2_plugin.h:34,
                 from ../libs/ardour/buffer_set.cc:40:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../libs/ardour/buffer_set.cc: In member function 'void ARDOUR::BufferSet::VSTBuffer::push_back(const Evoral::Event<long int>&)':
../libs/ardour/buffer_set.cc:420:27: warning: cast from 'VstEvent*' {aka '_VstEvent*'} to 'VstMidiEvent*' {aka '_VstMidiEvent*'} increases required alignment of target type [-Wcast-align]
  420 |         VstMidiEvent* v = reinterpret_cast<VstMidiEvent*> (_events->events[n]);
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 853/1835] Compiling libs/ardour/smf_source.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_scan_result.h:28,
                 from ../libs/ardour/plugin_scan_result.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 854/1835] Compiling libs/ardour/session_handle.cc
[ 855/1835] Compiling libs/ardour/vst_state.cc
[ 856/1835] Compiling libs/ardour/region.cc
[ 857/1835] Compiling libs/ardour/transform.cc
[ 858/1835] Compiling libs/ardour/template_utils.cc
[ 859/1835] Compiling libs/ardour/midiport_manager.cc
[ 860/1835] Compiling libs/ardour/vst2_scan.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/midi_playlist.cc:40:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/midi_playlist.h:38,
                 from ../libs/ardour/midi_playlist.cc:33:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 861/1835] Compiling libs/ardour/transport_master_manager.cc
[ 862/1835] Compiling libs/ardour/export_channel_configuration.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plug_insert_base.h:29,
                 from ../libs/ardour/plug_insert_base.cc:19:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 863/1835] Compiling libs/ardour/rt_task.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/automation_watch.cc:35:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 864/1835] Compiling libs/tk/ytkmm/spinner.cc
[ 865/1835] Compiling libs/tk/ytkmm/toolshell.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/ladspa_plugin.h:35,
                 from ../libs/ardour/plugin_insert.cc:41:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 866/1835] Compiling libs/tk/ytkmm/window.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/midi_automation_list_binder.h:24,
                 from ../libs/ardour/midi_model.cc:42:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/triggerbox.h:48,
                 from ../libs/ardour/ardour/session.h:96:
In copy constructor 'ARDOUR::MidiModel::PatchChangeDiffCommand::Change::Change(const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&)',
    inlined from 'void std::__new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = std::_List_node<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/new_allocator.h:191:4,
    inlined from 'static void std::allocator_traits<std::allocator<_CharT> >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = std::_List_node<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/alloc_traits.h:534:17,
    inlined from 'std::__cxx11::list<_Tp, _Alloc>::_Node* std::__cxx11::list<_Tp, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Alloc = std::allocator<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/stl_list.h:713:33,
    inlined from 'void std::__cxx11::list<_Tp, _Alloc>::_M_insert(iterator, _Args&& ...) [with _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Alloc = std::allocator<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/stl_list.h:2004:32,
    inlined from 'void std::__cxx11::list<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Alloc = std::allocator<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/stl_list.h:1306:24,
    inlined from 'void ARDOUR::MidiModel::PatchChangeDiffCommand::change_time(Evoral::Sequence<Temporal::Beats>::PatchChangePtr, ARDOUR::MidiModel::TimeType)' at ../libs/ardour/midi_model.cc:893:21:
../libs/ardour/ardour/midi_model.h:223:24: warning: 'c.ARDOUR::MidiModel::PatchChangeDiffCommand::Change::<anonymous>' may be used uninitialized [-Wmaybe-uninitialized]
  223 |                 struct Change {
      |                        ^~~~~~
../libs/ardour/midi_model.cc: In member function 'void ARDOUR::MidiModel::PatchChangeDiffCommand::change_time(Evoral::Sequence<Temporal::Beats>::PatchChangePtr, ARDOUR::MidiModel::TimeType)':
../libs/ardour/midi_model.cc:887:16: note: 'c' declared here
  887 |         Change c;
      |                ^
In copy constructor 'ARDOUR::MidiModel::PatchChangeDiffCommand::Change::Change(const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&)',
    inlined from 'void std::__new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = std::_List_node<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/new_allocator.h:191:4,
    inlined from 'static void std::allocator_traits<std::allocator<_CharT> >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = std::_List_node<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/alloc_traits.h:534:17,
    inlined from 'std::__cxx11::list<_Tp, _Alloc>::_Node* std::__cxx11::list<_Tp, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Alloc = std::allocator<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/stl_list.h:713:33,
    inlined from 'void std::__cxx11::list<_Tp, _Alloc>::_M_insert(iterator, _Args&& ...) [with _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Alloc = std::allocator<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/stl_list.h:2004:32,
    inlined from 'void std::__cxx11::list<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Alloc = std::allocator<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/stl_list.h:1306:24,
    inlined from 'void ARDOUR::MidiModel::PatchChangeDiffCommand::change_time(Evoral::Sequence<Temporal::Beats>::PatchChangePtr, ARDOUR::MidiModel::TimeType)' at ../libs/ardour/midi_model.cc:893:21:
../libs/ardour/ardour/midi_model.h:223:24: warning: 'c.ARDOUR::MidiModel::PatchChangeDiffCommand::Change::<anonymous>' may be used uninitialized [-Wmaybe-uninitialized]
  223 |                 struct Change {
      |                        ^~~~~~
../libs/ardour/midi_model.cc: In member function 'void ARDOUR::MidiModel::PatchChangeDiffCommand::change_time(Evoral::Sequence<Temporal::Beats>::PatchChangePtr, ARDOUR::MidiModel::TimeType)':
../libs/ardour/midi_model.cc:887:16: note: 'c' declared here
  887 |         Change c;
      |                ^
In copy constructor 'ARDOUR::MidiModel::PatchChangeDiffCommand::Change::Change(const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&)',
    inlined from 'void std::__new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = std::_List_node<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/new_allocator.h:191:4,
    inlined from 'static void std::allocator_traits<std::allocator<_CharT> >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = std::_List_node<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/alloc_traits.h:534:17,
    inlined from 'std::__cxx11::list<_Tp, _Alloc>::_Node* std::__cxx11::list<_Tp, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Alloc = std::allocator<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/stl_list.h:713:33,
    inlined from 'void std::__cxx11::list<_Tp, _Alloc>::_M_insert(iterator, _Args&& ...) [with _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Alloc = std::allocator<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/stl_list.h:2004:32,
    inlined from 'void std::__cxx11::list<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Alloc = std::allocator<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/stl_list.h:1306:24,
    inlined from 'void ARDOUR::MidiModel::PatchChangeDiffCommand::change_time(Evoral::Sequence<Temporal::Beats>::PatchChangePtr, ARDOUR::MidiModel::TimeType)' at ../libs/ardour/midi_model.cc:893:21:
../libs/ardour/ardour/midi_model.h:223:24: warning: 'c.ARDOUR::MidiModel::PatchChangeDiffCommand::Change::<anonymous>' may be used uninitialized [-Wmaybe-uninitialized]
  223 |                 struct Change {
      |                        ^~~~~~
../libs/ardour/midi_model.cc: In member function 'void ARDOUR::MidiModel::PatchChangeDiffCommand::change_time(Evoral::Sequence<Temporal::Beats>::PatchChangePtr, ARDOUR::MidiModel::TimeType)':
../libs/ardour/midi_model.cc:887:16: note: 'c' declared here
  887 |         Change c;
      |                ^
In copy constructor 'ARDOUR::MidiModel::PatchChangeDiffCommand::Change::Change(const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&)',
    inlined from 'void std::__new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = std::_List_node<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/new_allocator.h:191:4,
    inlined from 'static void std::allocator_traits<std::allocator<_CharT> >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = std::_List_node<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/alloc_traits.h:534:17,
    inlined from 'std::__cxx11::list<_Tp, _Alloc>::_Node* std::__cxx11::list<_Tp, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Alloc = std::allocator<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/stl_list.h:713:33,
    inlined from 'void std::__cxx11::list<_Tp, _Alloc>::_M_insert(iterator, _Args&& ...) [with _Args = {const ARDOUR::MidiModel::PatchChangeDiffCommand::Change&}; _Tp = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Alloc = std::allocator<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/stl_list.h:2004:32,
    inlined from 'void std::__cxx11::list<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = ARDOUR::MidiModel::PatchChangeDiffCommand::Change; _Alloc = std::allocator<ARDOUR::MidiModel::PatchChangeDiffCommand::Change>]' at /usr/include/c++/14.2.0/bits/stl_list.h:1306:24,
    inlined from 'void ARDOUR::MidiModel::PatchChangeDiffCommand::change_time(Evoral::Sequence<Temporal::Beats>::PatchChangePtr, ARDOUR::MidiModel::TimeType)' at ../libs/ardour/midi_model.cc:893:21:
../libs/ardour/ardour/midi_model.h:223:24: warning: 'c.ARDOUR::MidiModel::PatchChangeDiffCommand::Change::<anonymous>' may be used uninitialized [-Wmaybe-uninitialized]
  223 |                 struct Change {
      |                        ^~~~~~
../libs/ardour/midi_model.cc: In member function 'void ARDOUR::MidiModel::PatchChangeDiffCommand::change_time(Evoral::Sequence<Temporal::Beats>::PatchChangePtr, ARDOUR::MidiModel::TimeType)':
../libs/ardour/midi_model.cc:887:16: note: 'c' declared here
  887 |         Change c;
      |                ^

[ 867/1835] Compiling libs/tk/ytkmm/widget.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/automation_control.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 868/1835] Compiling libs/tk/ytkmm/scale.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/lua_api.h:36,
                 from ../libs/ardour/lua_api.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/lua/LuaBridge/LuaBridge.h:151,
                 from ../libs/ardour/lua_api.cc:44:
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::SimpleExport]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::SimpleExport]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::SimpleExport; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/lua_api.cc:666:60:   required from here
  666 |         void* ptr = luabridge::UserdataValue<SimpleExport>::place (L);
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::SimpleExport*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::DataType]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::DataType]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::DataType; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = ARDOUR::DataType; T = ARDOUR::DataType; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = ARDOUR::DataType; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = ARDOUR::DataType; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/lua_api.cc:56:36:   required from here
   56 |         luabridge::Stack <DataType>::push (L, dt);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::DataType*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::AutomationList>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::AutomationList>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::AutomationList>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::AutomationList>; T = std::shared_ptr<ARDOUR::AutomationList>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AutomationList>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AutomationList>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/lua_api.cc:442:59:   required from here
  442 |         luabridge::Stack<std::shared_ptr<AutomationList> >::push (L, c->alist ());
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::AutomationList>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<Evoral::ControlList>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<Evoral::ControlList>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<Evoral::ControlList>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<Evoral::ControlList>; T = std::shared_ptr<Evoral::ControlList>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<Evoral::ControlList>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<Evoral::ControlList>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/lua_api.cc:443:64:   required from here
  443 |         luabridge::Stack<std::shared_ptr<Evoral::ControlList> >::push (L, c->list ());
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<Evoral::ControlList>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::ParameterDescriptor]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::ParameterDescriptor]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::ParameterDescriptor; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = ARDOUR::ParameterDescriptor; T = ARDOUR::ParameterDescriptor; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = ARDOUR::ParameterDescriptor; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = ARDOUR::ParameterDescriptor; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/lua_api.cc:444:46:   required from here
  444 |         luabridge::Stack<ParameterDescriptor>::push (L, pd);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::ParameterDescriptor*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::nullptr_t]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::nullptr_t]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::nullptr_t; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::nullptr_t; T = std::nullptr_t; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::nullptr_t; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::nullptr_t; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/LuaRef.h:1041:22:   required from 'const luabridge::LuaRef luabridge::LuaRef::operator()(P1, P2) const [with P1 = std::nullptr_t; P2 = double]'
 1041 |     Stack <P1>::push (m_L, p1);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~
../libs/ardour/lua_api.cc:1283:14:   required from here
 1283 |                 if ((*_cb) (NULL, pos * .5 + (study ? 0 : _read_len / 2))) {
      |                     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::nullptr_t*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 869/1835] Compiling libs/tk/ytkmm/liststore.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/track.cc:51:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/track.cc:33:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 870/1835] Compiling libs/tk/ytkmm/treemodelcolumn.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/import.cc:65:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 871/1835] Compiling libs/tk/ytkmm/toolitemgroup.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/instrument_info.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 872/1835] Compiling libs/tk/ytkmm/togglebutton.cc
[ 873/1835] Compiling libs/tk/ytkmm/style.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/port_insert.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 874/1835] Compiling libs/tk/ytkmm/toggletoolbutton.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/automatable.cc:45:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 875/1835] Compiling libs/tk/ytkmm/comboboxentry.cc
[ 876/1835] Compiling libs/tk/ytkmm/table.cc
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/rc_configuration.cc:38:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 877/1835] Compiling libs/tk/ytkmm/comboboxtext.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/location.cc:42:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 878/1835] Compiling libs/tk/ytkmm/textchildanchor.cc
[ 879/1835] Compiling libs/tk/ytkmm/targetentry.cc
[ 880/1835] Compiling libs/tk/ytkmm/statusbar.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../libs/ardour/auditioner.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/auditioner.cc:35:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 881/1835] Compiling libs/tk/ytkmm/targetlist.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/disk_io.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/disk_io.cc:27:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 882/1835] Compiling libs/tk/ytkmm/recentchooserdialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/import_pt.cc:46:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 883/1835] Compiling libs/tk/ytkmm/tearoffmenuitem.cc
[ 884/1835] Compiling libs/tk/ytkmm/textmark.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/sidechain.cc:28:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 885/1835] Compiling libs/tk/ytkmm/texttag.cc
[ 886/1835] Compiling libs/tk/ytkmm/comboboxentrytext.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/audiosource.cc:65:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 887/1835] Compiling libs/tk/ytkmm/textattributes.cc
[ 888/1835] Compiling libs/tk/ytkmm/texttagtable.cc
[ 889/1835] Compiling libs/tk/ytkmm/toggleaction.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/capturing_processor.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 890/1835] Compiling libs/tk/ytkmm/viewport.cc
[ 891/1835] Compiling libs/tk/ytkmm/toolbar.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/processor.cc:47:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 892/1835] Compiling libs/tk/ytkmm/toolbutton.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/region_fx_plugin.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../libs/ardour/region_fx_plugin.cc: In member function 'bool ARDOUR::RegionFxPlugin::configure_io(ARDOUR::ChanCount, ARDOUR::ChanCount)':
../libs/ardour/region_fx_plugin.cc:986:36: warning: unused variable 'r' [-Wunused-variable]
  986 |                         bool const r = _plugins.front ()->match_variable_io (din, daux, dout);
      |                                    ^

[ 893/1835] Compiling libs/tk/ytkmm/stock.cc
[ 894/1835] Compiling libs/tk/ytkmm/spinbutton.cc
[ 895/1835] Compiling libs/tk/ytkmm/settings.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/surround_send.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 896/1835] Compiling libs/tk/ytkmm/scalebutton.cc
[ 897/1835] Compiling libs/tk/ytkmm/toolpalette.cc
[ 898/1835] Compiling libs/tk/ytkmm/toolitem.cc
[ 899/1835] Compiling libs/tk/ytkmm/wrap_init.cc
[ 900/1835] Compiling libs/tk/ytkmm/container.cc
[ 901/1835] Compiling libs/tk/ytkmm/accelgroup.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/midi_scene_changer.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 902/1835] Compiling libs/tk/ytkmm/sizegroup.cc
[ 903/1835] Compiling libs/tk/ytkmm/separatortoolitem.cc
[ 904/1835] Compiling libs/tk/ytkmm/accellabel.cc
[ 905/1835] Compiling libs/tk/ytkmm/treesortable.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/stripable.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 906/1835] Compiling libs/tk/ytkmm/socket.cc
[ 907/1835] Compiling libs/tk/ytkmm/tooltip.cc
[ 908/1835] Compiling libs/tk/ytkmm/tooltips.cc
[ 909/1835] Compiling libs/tk/ytkmm/textiter.cc
[ 910/1835] Compiling libs/tk/ytkmm/selectiondata.cc
[ 911/1835] Compiling libs/tk/ytkmm/stockid.cc
[ 912/1835] Compiling libs/tk/ytkmm/treedragdest.cc
[ 913/1835] Compiling libs/tk/ytkmm/dialog.cc
[ 914/1835] Compiling libs/tk/ytkmm/separator.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/transport_fsm.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/transport_fsm.cc:30:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../libs/ardour/ardour/debug.h:31,
                 from ../libs/ardour/transport_fsm.cc:29:
../libs/ardour/transport_fsm.cc: In member function 'void ARDOUR::TransportFSM::transition(MotionState)':
../libs/ardour/transport_fsm.cc:727:47: warning: statement has no effect [-Wunused-value]
  727 |         DEBUG_RESULT (const MotionState, old, _motion_state);
      |                                               ^~~~~~~~~~~~~
../libs/pbd/pbd/debug.h:116:36: note: in definition of macro 'DEBUG_RESULT'
  116 | #define DEBUG_RESULT(type,var,...) __VA_ARGS__
      |                                    ^~~~~~~~~~~
../libs/ardour/transport_fsm.cc: In member function 'void ARDOUR::TransportFSM::transition(ButlerState)':
../libs/ardour/transport_fsm.cc:736:47: warning: statement has no effect [-Wunused-value]
  736 |         DEBUG_RESULT (const ButlerState, old, _butler_state);
      |                                               ^~~~~~~~~~~~~
../libs/pbd/pbd/debug.h:116:36: note: in definition of macro 'DEBUG_RESULT'
  116 | #define DEBUG_RESULT(type,var,...) __VA_ARGS__
      |                                    ^~~~~~~~~~~
../libs/ardour/transport_fsm.cc: In member function 'void ARDOUR::TransportFSM::transition(DirectionState)':
../libs/ardour/transport_fsm.cc:745:50: warning: statement has no effect [-Wunused-value]
  745 |         DEBUG_RESULT (const DirectionState, old, _direction_state);
      |                                                  ^~~~~~~~~~~~~~~~
../libs/pbd/pbd/debug.h:116:36: note: in definition of macro 'DEBUG_RESULT'
  116 | #define DEBUG_RESULT(type,var,...) __VA_ARGS__
      |                                    ^~~~~~~~~~~

[ 915/1835] Compiling libs/tk/ytkmm/treedragsource.cc
[ 916/1835] Compiling libs/tk/ytkmm/treeiter.cc
[ 917/1835] Compiling libs/tk/ytkmm/scrolledwindow.cc
[ 918/1835] Compiling libs/tk/ytkmm/colorbutton.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/session_ltc.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 919/1835] Compiling libs/tk/ytkmm/treemodel.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/midi_region.cc:50:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 920/1835] Compiling libs/tk/ytkmm/treemodelfilter.cc
[ 921/1835] Compiling libs/tk/ytkmm/scrollbar.cc
[ 922/1835] Compiling libs/tk/ytkmm/drawingarea.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/export_filename.cc:35:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 923/1835] Compiling libs/tk/ytkmm/treepath.cc
[ 924/1835] Compiling libs/tk/ytkmm/recentmanager.cc
[ 925/1835] Compiling libs/tk/ytkmm/combobox.cc
[ 926/1835] Compiling libs/tk/ytkmm/checkmenuitem.cc
[ 927/1835] Compiling libs/tk/ytkmm/radiobuttongroup.cc
[ 928/1835] Compiling libs/tk/ytkmm/listviewtext.cc
[ 929/1835] Compiling libs/tk/ytkmm/accelkey.cc
[ 930/1835] Compiling libs/tk/ytkmm/radiomenuitem.cc
[ 931/1835] Compiling libs/tk/ytkmm/ruler.cc
[ 932/1835] Compiling libs/tk/ytkmm/treestore.cc
[ 933/1835] Compiling libs/tk/ytkmm/treeview.cc
[ 934/1835] Compiling libs/tk/ytkmm/clipboard.cc
[ 935/1835] Compiling libs/tk/ytkmm/recentinfo.cc
[ 936/1835] Compiling libs/tk/ytkmm/treeview_private.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/session_handle.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 937/1835] Compiling libs/tk/ytkmm/editable.cc
[ 938/1835] Compiling libs/tk/ytkmm/stockitem.cc
[ 939/1835] Compiling libs/tk/ytkmm/entry.cc
[ 940/1835] Compiling libs/tk/ytkmm/treeviewcolumn.cc
[ 941/1835] Compiling libs/tk/ytkmm/recentfilter.cc
[ 942/1835] Compiling libs/tk/ytkmm/cellview.cc
[ 943/1835] Compiling libs/tk/ytkmm/cellrendererspinner.cc
[ 944/1835] Compiling libs/tk/ytkmm/uimanager.cc
[ 945/1835] Compiling libs/tk/ytkmm/entrybuffer.cc
[ 946/1835] Compiling libs/tk/ytkmm/separatormenuitem.cc
[ 947/1835] Compiling libs/tk/ytkmm/colorselection.cc
[ 948/1835] Compiling libs/tk/ytkmm/selectiondata_private.cc
[ 949/1835] Compiling libs/tk/ytkmm/cellrenderertoggle.cc
[ 950/1835] Compiling libs/tk/ytkmm/range.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/polarity_processor.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 951/1835] Compiling libs/tk/ytkmm/recentchooser.cc
[ 952/1835] Compiling libs/tk/ytkmm/recentaction.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/disk_reader.cc:41:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/disk_reader.cc:34:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 953/1835] Compiling libs/tk/ytkmm/cellrenderertext.cc
[ 954/1835] Compiling libs/tk/ytkmm/rc.cc
[ 955/1835] Compiling libs/tk/ytkmm/radiobutton.cc
[ 956/1835] Compiling libs/tk/ytkmm/radioaction.cc
[ 957/1835] Compiling libs/tk/ytkmm/textview.cc
[ 958/1835] Compiling libs/tk/ytkmm/cellrenderercombo.cc
[ 959/1835] Compiling libs/tk/ytkmm/menu.cc
[ 960/1835] Compiling libs/tk/ytkmm/cellrendererspin.cc
[ 961/1835] Compiling libs/tk/ytkmm/menuitem.cc
[ 962/1835] Compiling libs/tk/ytkmm/checkbutton.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/midi_ui.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 963/1835] Compiling libs/tk/ytkmm/progressbar.cc
[ 964/1835] Compiling libs/tk/ytkmm/filefilter.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/monitor_port.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 965/1835] Compiling libs/tk/ytkmm/treeselection.cc
[ 966/1835] Compiling libs/tk/ytkmm/object.cc
[ 967/1835] Compiling libs/tk/ytkmm/plug.cc
[ 968/1835] Compiling libs/tk/ytkmm/orientable.cc
[ 969/1835] Compiling libs/tk/ytkmm/offscreenwindow.cc
[ 970/1835] Compiling libs/tk/ytkmm/cellrendererpixbuf.cc
[ 971/1835] Compiling libs/tk/ytkmm/notebook.cc
[ 972/1835] Compiling libs/tk/ytkmm/misc.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/transport_master.cc:28:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 973/1835] Compiling libs/tk/ytkmm/celleditable.cc
[ 974/1835] Compiling libs/tk/ytkmm/item.cc
[ 975/1835] Compiling libs/tk/ytkmm/menu_elems.cc
[ 976/1835] Compiling libs/tk/ytkmm/messagedialog.cc
[ 977/1835] Compiling libs/tk/ytkmm/cellrendereraccel.cc
[ 978/1835] Compiling libs/tk/ytkmm/menutoolbutton.cc
[ 979/1835] Compiling libs/tk/ytkmm/menushell.cc
[ 980/1835] Compiling libs/tk/ytkmm/menubar.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/slavable_automation_control.cc:34:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 981/1835] Compiling libs/tk/ytkmm/main.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/ardour/route.cc:84:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/route.cc:64:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 982/1835] Compiling libs/tk/ytkmm/cellrenderer.cc
[ 983/1835] Compiling libs/tk/ytkmm/iconview.cc
[ 984/1835] Compiling libs/tk/ytkmm/optionmenu.cc
[ 985/1835] Compiling libs/tk/ytkmm/cellrenderer_generation.cc
[ 986/1835] Compiling libs/tk/ytkmm/buttonbox.cc
[ 987/1835] Compiling libs/tk/ytkmm/button.cc
In file included from ../libs/ardour/ardour/cycle_timer.h:29,
                 from ../libs/ardour/audioengine.cc:57:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 988/1835] Compiling libs/tk/ytkmm/recentchooserwidget.cc
[ 989/1835] Compiling libs/tk/ytkmm/icontheme.cc
[ 990/1835] Compiling libs/tk/ytkmm/adjustment.cc
[ 991/1835] Compiling libs/tk/ytkmm/linkbutton.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/smf_source.cc:54:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[ 992/1835] Compiling libs/tk/ytkmm/layout.cc
[ 993/1835] Compiling libs/tk/ytkmm/entrycompletion.cc
[ 994/1835] Compiling libs/tk/ytkmm/label.cc
[ 995/1835] Compiling libs/tk/ytkmm/recentchoosermenu.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/midi_track.cc:63:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/midi_track.cc:49:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ 996/1835] Compiling libs/tk/ytkmm/builder.cc
[ 997/1835] Compiling libs/tk/ytkmm/invisible.cc
[ 998/1835] Compiling libs/tk/ytkmm/infobar.cc
[ 999/1835] Compiling libs/tk/ytkmm/imagemenuitem.cc
[1000/1835] Compiling libs/tk/ytkmm/image.cc
[1001/1835] Compiling libs/tk/ytkmm/box.cc
[1002/1835] Compiling libs/tk/ytkmm/iconsource.cc
[1003/1835] Compiling libs/tk/ytkmm/bin.cc
[1004/1835] Compiling libs/tk/ytkmm/treemodelsort.cc
[1005/1835] Compiling libs/tk/ytkmm/arrow.cc
[1006/1835] Compiling libs/tk/ytkmm/assistant.cc
[1007/1835] Compiling libs/tk/ytkmm/iconset.cc
[1008/1835] Compiling libs/tk/ytkmm/treerowreference.cc
[1009/1835] Compiling libs/tk/ytkmm/iconinfo.cc
[1010/1835] Compiling libs/tk/ytkmm/iconfactory.cc
[1011/1835] Compiling libs/tk/ytkmm/aspectframe.cc
[1012/1835] Compiling libs/tk/ytkmm/fontbutton.cc
[1013/1835] Compiling libs/tk/ytkmm/handlebox.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/transport_master_manager.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/transport_master_manager.cc:24:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[1014/1835] Compiling libs/tk/ytkmm/frame.cc
[1015/1835] Compiling libs/tk/ytkmm/alignment.cc
[1016/1835] Compiling libs/tk/ytkmm/fontselection.cc
[1017/1835] Compiling libs/tk/ytkmm/filechooserwidget.cc
[1018/1835] Compiling libs/tk/ytkmm/textbuffer.cc
[1019/1835] Compiling libs/tk/ytkmm/filechooserbutton.cc
[1020/1835] Compiling libs/tk/ytkmm/activatable.cc
[1021/1835] Compiling libs/tk/ytkmm/filechooserdialog.cc
[1022/1835] Compiling libs/tk/ytkmm/actiongroup.cc
[1023/1835] Compiling libs/tk/ytkmm/fixed.cc
[1024/1835] Compiling libs/tk/ytkmm/filechooser.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/disk_writer.cc:37:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_writer.h:28,
                 from ../libs/ardour/disk_writer.cc:31:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[1025/1835] Compiling libs/tk/ytkmm/action.cc
[1026/1835] Compiling libs/tk/ytkmm/expander.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/audioregion.cc:51:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1027/1835] Compiling libs/tk/ytkmm/radiotoolbutton.cc
[1028/1835] Compiling libs/tk/ytkmm/enums.cc
[1029/1835] Compiling libs/tk/ytkmm/eventbox.cc
[1030/1835] Compiling libs/tk/ytkmm/accelmap.cc
[1031/1835] Compiling libs/tk/ytkmm/celllayout.cc
[1032/1835] Compiling libs/tk/ytkmm/paned.cc
[1033/1835] Compiling libs/tk/ytkmm/cellrendererprogress.cc
[1034/1835] Compiling libs/tk/ytkmm/aboutdialog.cc
[1035/1835] Compiling libs/ctrl-interface/control_protocol/control_protocol.cc
[1036/1835] Compiling libs/ctrl-interface/control_protocol/basic_ui.cc
[1037/1835] Compiling libs/gtkmm2ext/gtk_ui.cc
[1038/1835] Compiling libs/gtkmm2ext/emscale.cc
[1039/1835] Compiling libs/gtkmm2ext/application.cc
[1040/1835] Compiling libs/gtkmm2ext/menu_elems.cc
[1041/1835] Compiling libs/gtkmm2ext/cairo_packer.cc
[1042/1835] Compiling libs/gtkmm2ext/action_model.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/export_handler.h:36,
                 from ../libs/ardour/ardour/export_graph_builder.h:25,
                 from ../libs/ardour/export_handler.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/export_handler.cc:35:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[1043/1835] Compiling libs/gtkmm2ext/bindings.cc
[1044/1835] Compiling libs/gtkmm2ext/treeutils.cc
[1045/1835] Compiling libs/gtkmm2ext/window_title.cc
[1046/1835] Compiling libs/gtkmm2ext/visibility_tracker.cc
[1047/1835] Compiling libs/gtkmm2ext/gtkapplication.c
[1048/1835] Compiling libs/gtkmm2ext/window_proxy.cc
[1049/1835] Compiling libs/gtkmm2ext/textviewer.cc
[1050/1835] Compiling libs/gtkmm2ext/persistent_tooltip.cc
[1051/1835] Compiling libs/gtkmm2ext/gtkapplication_x11.c
[1052/1835] Compiling libs/gtkmm2ext/debug.cc
[1053/1835] Compiling libs/gtkmm2ext/cursors.cc
[1054/1835] Compiling libs/gtkmm2ext/cairo_theme.cc
[1055/1835] Compiling libs/gtkmm2ext/colorspace.cc
[1056/1835] Compiling libs/gtkmm2ext/colors.cc
[1057/1835] Compiling libs/gtkmm2ext/cell_renderer_pixbuf_multi.cc
[1058/1835] Compiling libs/gtkmm2ext/cell_renderer_pixbuf_toggle.cc
[1059/1835] Compiling libs/gtkmm2ext/cell_renderer_color_selector.cc
[1060/1835] Compiling libs/gtkmm2ext/cairo_widget.cc
[1061/1835] Compiling libs/gtkmm2ext/keyboard.cc
[1062/1835] Compiling libs/gtkmm2ext/dndtreeview.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/ladspa_plugin.h:35,
                 from ../libs/ardour/plugin_manager.cc:80:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1063/1835] Compiling libs/gtkmm2ext/actions.cc
[1064/1835] Compiling libs/gtkmm2ext/utils.cc
[1065/1835] Compiling libs/canvas/step_button.cc
[1066/1835] Compiling libs/canvas/text.cc
[1067/1835] Compiling libs/canvas/tracking_text.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtkapplication.h:27,
                 from ../libs/gtkmm2ext/gtkapplication.c:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:1: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      | ^~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:725:1: note: declared here
  725 | {
      | ^
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:3: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[1068/1835] Compiling libs/canvas/line.cc
[1069/1835] Compiling libs/canvas/ruler.cc
[1070/1835] Compiling libs/canvas/rectangle.cc
[1071/1835] Compiling libs/canvas/arrow.cc
[1072/1835] Compiling libs/canvas/table.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtkapplication.h:27,
                 from ../libs/gtkmm2ext/gtkapplication_x11.c:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:1: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      | ^~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:725:1: note: declared here
  725 | {
      | ^
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:3: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[1073/1835] Compiling libs/canvas/root_group.cc
[1074/1835] Compiling libs/canvas/scroll_group.cc
[1075/1835] Compiling libs/canvas/container.cc
[1076/1835] Compiling libs/canvas/poly_line.cc
[1077/1835] Compiling libs/canvas/pixbuf.cc
[1078/1835] Compiling libs/canvas/lollipop.cc
[1079/1835] Compiling libs/canvas/polygon.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/luaproc.h:42,
                 from ../libs/ardour/luaproc.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/lua/LuaBridge/LuaBridge.h:151,
                 from ../libs/ardour/luaproc.cc:39:
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::ChanCount]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::ChanCount]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::ChanCount; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = ARDOUR::ChanCount; T = ARDOUR::ChanCount; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = ARDOUR::ChanCount; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = ARDOUR::ChanCount; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/LuaRef.h:1041:22:   required from 'const luabridge::LuaRef luabridge::LuaRef::operator()(P1, P2) const [with P1 = ARDOUR::ChanCount; P2 = ARDOUR::ChanCount]'
 1041 |     Stack <P1>::push (m_L, p1);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~
../libs/ardour/luaproc.cc:678:46:   required from here
  678 |                                 luabridge::LuaRef io = lua_dsp_configure (in, out);
      |                                                        ~~~~~~~~~~~~~~~~~~^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::ChanCount*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::weak_ptr<ARDOUR::Route>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::weak_ptr<ARDOUR::Route>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::weak_ptr<ARDOUR::Route>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::weak_ptr<ARDOUR::Route>; T = std::weak_ptr<ARDOUR::Route>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::weak_ptr<ARDOUR::Route>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::weak_ptr<ARDOUR::Route>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:331:32:   required from 'static int luabridge::CFunc::CallConstMember<MemFnPtr, ReturnType>::f(lua_State*) [with MemFnPtr = std::weak_ptr<ARDOUR::Route> (ARDOUR::LuaProc::*)() const; ReturnType = std::weak_ptr<ARDOUR::Route>; lua_State = lua_State]'
  331 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (t, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:982:28:   required from 'static void luabridge::CFunc::CallMemberFunctionHelper<MemFnPtr, isConst>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::weak_ptr<ARDOUR::Route> (ARDOUR::LuaProc::*)() const; bool isConst = true; lua_State = lua_State]'
  982 |       lua_pushcclosure (L, &CallConstMember <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:982:95:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addFunction(const char*, MemFn) [with MemFn = std::weak_ptr<ARDOUR::Route> (ARDOUR::LuaProc::*)() const; T = ARDOUR::LuaProc]'
  982 |       CFunc::CallMemberFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luaproc.cc:164:16:   required from here
  158 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  159 |                 .beginNamespace ("Ardour")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
  160 |                 .deriveClass <LuaProc, PBD::StatefulDestructible> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  161 |                 .addFunction ("queue_draw", &LuaProc::queue_draw)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  162 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  163 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  164 |                 .addFunction ("route", &LuaProc::route)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::weak_ptr<ARDOUR::Route>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[1080/1835] Compiling libs/canvas/meter.cc
[1081/1835] Compiling libs/canvas/box.cc
[1082/1835] Compiling libs/canvas/lookup_table.cc
[1083/1835] Compiling libs/canvas/grid.cc
[1084/1835] Compiling libs/canvas/flag.cc
[1085/1835] Compiling libs/canvas/circle.cc
[1086/1835] Compiling libs/canvas/line_set.cc
[1087/1835] Compiling libs/canvas/framed_curve.cc
[1088/1835] Compiling libs/canvas/fill.cc
[1089/1835] Compiling libs/canvas/curve.cc
[1090/1835] Compiling libs/canvas/poly_item.cc
[1091/1835] Compiling libs/canvas/image.cc
[1092/1835] Compiling libs/canvas/debug.cc
[1093/1835] Compiling libs/canvas/note.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/gtkmm2ext/emscale.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1094/1835] Compiling libs/canvas/arc.cc
[1095/1835] Compiling libs/canvas/types.cc
[1096/1835] Compiling libs/canvas/outline.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/gtkmm2ext/application.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1097/1835] Compiling libs/canvas/canvas.cc
[1098/1835] Compiling libs/canvas/xfade_curve.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/menu_elems.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1099/1835] Compiling libs/canvas/utils.cc
[1100/1835] Compiling libs/canvas/widget.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:33,
                 from ../libs/gtkmm2ext/visibility_tracker.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1101/1835] Compiling libs/canvas/item.cc
[1102/1835] Compiling libs/canvas/stateful_image.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/gtkmm2ext/colors.cc:33:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/gtkmm2ext/colors.cc:26:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1103/1835] Compiling libs/ctrl-interface/midi_surface/midi_surface.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../libs/gtkmm2ext/cairo_packer.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:8,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1104/1835] Linking build/libs/tk/ytkmm/libytkmm.so
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:34,
                 from ../libs/gtkmm2ext/gtkmm2ext/treeutils.h:22,
                 from ../libs/gtkmm2ext/treeutils.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:33:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1105/1835] Compiling libs/ctrl-interface/midi_surface/midi_byte_array.cc
[1106/1835] Compiling libs/widgets/paths_dialog.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/debug.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1107/1835] Compiling libs/widgets/pane.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:31,
                 from ../libs/gtkmm2ext/action_model.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1108/1835] Compiling libs/widgets/fastmeter.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:33,
                 from ../libs/gtkmm2ext/persistent_tooltip.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h:25,
                 from ../libs/gtkmm2ext/persistent_tooltip.cc:22:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1109/1835] Compiling libs/widgets/scroomer.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/lv2_plugin.h:34,
                 from ../libs/ardour/lv2_plugin.cc:66:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../libs/ardour/lv2_plugin.cc: In member function 'bool ARDOUR::LV2Plugin::write_to(PBD::RingBuffer<unsigned char>*, uint32_t, uint32_t, uint32_t, const uint8_t*)':
../libs/ardour/lv2_plugin.cc:1869:26: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::LV2Plugin::UIMessage*' increases required alignment of target type [-Wcast-align]
 1869 |         UIMessage* msg = (UIMessage*)&buf[0];
      |                          ^~~~~~~~~~~~~~~~~~~
../libs/ardour/lv2_plugin.cc: In member function 'virtual void ARDOUR::LV2Plugin::set_property(uint32_t, const ARDOUR::Variant&)':
../libs/ardour/lv2_plugin.cc:2039:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'const LV2_Atom*' increases required alignment of target type [-Wcast-align]
 2039 |         const LV2_Atom* const atom = (const LV2_Atom*)buf;
      |                                      ^~~~~~~~~~~~~~~~~~~~
../libs/ardour/lv2_plugin.cc: In member function 'virtual void ARDOUR::LV2Plugin::announce_property_values()':
../libs/ardour/lv2_plugin.cc:2206:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'const LV2_Atom*' increases required alignment of target type [-Wcast-align]
 2206 |         const LV2_Atom* const atom = (const LV2_Atom*)buf;
      |                                      ^~~~~~~~~~~~~~~~~~~~
../libs/ardour/lv2_plugin.cc: In function 'bool write_position(LV2_Atom_Forge*, ARDOUR::LV2_Evbuf*, const Temporal::TempoMetric&, const Temporal::BBT_Time&, double, double, double, ARDOUR::samplepos_t, ARDOUR::samplecnt_t)':
../libs/ardour/lv2_plugin.cc:2778:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'const LV2_Atom*' increases required alignment of target type [-Wcast-align]
 2778 |         const LV2_Atom* const atom = (const LV2_Atom*)pos_buf;
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/lv2_plugin.cc: In member function 'virtual int ARDOUR::LV2Plugin::connect_and_run(ARDOUR::BufferSet&, ARDOUR::samplepos_t, ARDOUR::samplepos_t, double, const ARDOUR::ChanMapping&, const ARDOUR::ChanMapping&, ARDOUR::pframes_t, ARDOUR::samplecnt_t)':
../libs/ardour/lv2_plugin.cc:3022:62: warning: cast from '__gnu_cxx::__alloc_traits<std::allocator<unsigned char>, unsigned char>::value_type*' {aka 'unsigned char*'} to 'const LV2_Atom*' increases required alignment of target type [-Wcast-align]
 3022 |                                 const LV2_Atom* const atom = (const LV2_Atom*)&body[0];
../libs/ardour/lv2_plugin.cc:3107:58: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'LV2_Atom*' increases required alignment of target type [-Wcast-align]
 3107 |                                         LV2_Atom* atom = (LV2_Atom*)(data - sizeof(LV2_Atom));
      |                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/lv2_plugin.cc:3216:58: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'LV2_Atom*' increases required alignment of target type [-Wcast-align]
 3216 |                                         LV2_Atom* atom = (LV2_Atom*)(data - sizeof(LV2_Atom));
      |                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/lv2_plugin.cc:3228:58: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'LV2_Atom*' increases required alignment of target type [-Wcast-align]
 3228 |                                         LV2_Atom* atom = (LV2_Atom*)(data - sizeof(LV2_Atom));
      |                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[1110/1835] Compiling libs/widgets/ardour_spinner.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../libs/gtkmm2ext/cell_renderer_color_selector.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1111/1835] Compiling libs/widgets/ardour_dropdown.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../libs/gtkmm2ext/cell_renderer_pixbuf_toggle.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1112/1835] Compiling libs/widgets/binding_proxy.cc
[1113/1835] Compiling libs/widgets/ardour_display.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../libs/canvas/types.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1114/1835] Compiling libs/widgets/tooltips.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:34,
                 from ../libs/gtkmm2ext/gtkmm2ext/dndtreeview.h:26,
                 from ../libs/gtkmm2ext/dndtreeview.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:33:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1115/1835] Compiling libs/widgets/ardour_knob.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../libs/gtkmm2ext/cell_renderer_pixbuf_multi.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1116/1835] Compiling libs/widgets/barcontroller.cc
[1117/1835] Compiling libs/widgets/focus_entry.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/eventbox.h:31,
                 from ../libs/gtkmm2ext/gtkmm2ext/cairo_widget.h:26,
                 from ../libs/gtkmm2ext/cairo_widget.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/eventbox.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1118/1835] Compiling libs/widgets/popup.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../libs/canvas/canvas/utils.h:26,
                 from ../libs/canvas/utils.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1119/1835] Compiling libs/widgets/frame.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/gtkmm2ext/gtkmm2ext/textviewer.h:25,
                 from ../libs/gtkmm2ext/textviewer.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1120/1835] Compiling libs/widgets/fader_widget.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/window_proxy.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1121/1835] Compiling libs/widgets/eventboxext.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/lua_api.h:36,
                 from ../libs/ardour/region.cc:39:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1122/1835] Compiling libs/widgets/prompter.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/line_set.h:26,
                 from ../libs/canvas/line_set.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1123/1835] Compiling libs/widgets/ardour_button.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/rectangle.h:24,
                 from ../libs/canvas/canvas/box.h:24,
                 from ../libs/canvas/box.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/stacktrace.h:31,
                 from ../libs/canvas/box.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1124/1835] Compiling libs/widgets/ardour_fader.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:34,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkpaned.h:34,
                 from ../libs/gtkmm2ext/utils.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125,
                 from ../libs/gtkmm2ext/utils.cc:30:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../libs/gtkmm2ext/utils.cc:37:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1125/1835] Compiling libs/widgets/slider_controller.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/container.h:23,
                 from ../libs/canvas/container.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1126/1835] Compiling libs/widgets/tabbable.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/container.h:23,
                 from ../libs/canvas/canvas/arrow.h:29,
                 from ../libs/canvas/arrow.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1127/1835] Compiling libs/widgets/ardour_ctrl_base.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../libs/canvas/canvas/fill.h:30,
                 from ../libs/canvas/canvas/arc.h:22,
                 from ../libs/canvas/canvas/circle.h:24,
                 from ../libs/canvas/circle.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1128/1835] Compiling libs/widgets/ui_config.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/text.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:33,
                 from ../libs/canvas/text.cc:24:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1129/1835] Compiling libs/widgets/ardour_icon.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/filechooserdialog.h:31,
                 from ../libs/widgets/paths_dialog.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/filechooserdialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../libs/widgets/paths_dialog.cc:22:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1130/1835] Compiling libs/widgets/tearoff.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/canvas/tracking_text.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1131/1835] Compiling libs/widgets/searchbar.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/accelmap.h:28,
                 from ../libs/gtkmm2ext/keyboard.cc:33:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/glib/gprintf.h:23,
                 from /usr/include/glib-2.0/glib/gstdio.h:24,
                 from ../libs/pbd/pbd/gstdio_compat.h:29,
                 from ../libs/gtkmm2ext/keyboard.cc:30:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/gtkmm2ext/keyboard.cc:34:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/gtkmm2ext/keyboard.cc:49:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1132/1835] Compiling libs/widgets/stateful_button.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/note.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1133/1835] Compiling libs/widgets/choice.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/container.h:23,
                 from ../libs/canvas/canvas/root_group.h:24,
                 from ../libs/canvas/root_group.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/stacktrace.h:31,
                 from ../libs/canvas/root_group.cc:20:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/canvas/root_group.cc:23:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1134/1835] Compiling libs/widgets/ardour_spacer.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/canvas/poly_item.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1135/1835] Compiling libs/ardouralsautil/devicelist.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../libs/ardour/session.cc:70:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/session.cc:80:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[1136/1835] Compiling libs/ardouralsautil/deviceparams.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixmap.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/bitmap.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/cursor.h:31,
                 from ../libs/widgets/pane.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/cursor.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/widgets/widgets/pane.h:30,
                 from ../libs/widgets/pane.cc:24:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1137/1835] Compiling libs/aaf/AAFToText.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/grid.h:24,
                 from ../libs/canvas/grid.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1138/1835] Compiling libs/aaf/AAFIParser.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/accelmap.h:28,
                 from ../libs/gtkmm2ext/bindings.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/glib/gprintf.h:23,
                 from /usr/include/glib-2.0/glib/gstdio.h:24,
                 from ../libs/pbd/pbd/gstdio_compat.h:29,
                 from ../libs/gtkmm2ext/bindings.cc:23:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/uimanager.h:29,
                 from ../libs/gtkmm2ext/bindings.cc:25:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/gtkmm2ext/bindings.cc:37:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1139/1835] Compiling libs/aaf/CFBDump.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../libs/canvas/rectangle.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:8,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1140/1835] Compiling libs/aaf/Resolve.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../libs/canvas/canvas/fill.h:30,
                 from ../libs/canvas/canvas/polygon.h:23,
                 from ../libs/canvas/polygon.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1141/1835] Compiling libs/aaf/AAFDump.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/canvas/scroll_group.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1142/1835] Compiling libs/aaf/URIParser.c
[1143/1835] Compiling libs/aaf/utils.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/general.h:23,
                 from ../libs/canvas/pixbuf.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1144/1835] Compiling libs/aaf/ProTools.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/eventbox.h:31,
                 from ../libs/widgets/widgets/eventboxext.h:22,
                 from ../libs/widgets/eventboxext.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/eventbox.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1145/1835] Compiling libs/aaf/AAFIface.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:31,
                 from ../libs/widgets/widgets/focus_entry.h:23,
                 from ../libs/widgets/focus_entry.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1146/1835] Compiling libs/aaf/MediaComposer.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/line.h:23,
                 from ../libs/canvas/line.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/canvas/line.cc:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1147/1835] Compiling libs/aaf/log.c
[1148/1835] Compiling libs/aaf/AAFCore.c
[1149/1835] Compiling libs/aaf/RIFFParser.c
[1150/1835] Compiling libs/aaf/AAFIEssenceFile.c
[1151/1835] Compiling libs/aaf/AAFClass.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../libs/canvas/canvas/interpolated_curve.h:22,
                 from ../libs/canvas/canvas/framed_curve.h:24,
                 from ../libs/canvas/framed_curve.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1152/1835] Compiling libs/aaf/LibCFB.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../libs/canvas/canvas/fill.h:30,
                 from ../libs/canvas/fill.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/convert.h:29,
                 from ../libs/canvas/fill.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1153/1835] Compiling libs/waveview/wave_view.cc
[1154/1835] Compiling libs/waveview/wave_view_private.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/rectangle.h:24,
                 from ../libs/canvas/canvas/table.h:24,
                 from ../libs/canvas/table.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/pbd/pbd/timing.h:22,
                 from ../libs/pbd/pbd/debug.h:31,
                 from ../libs/canvas/table.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1155/1835] Compiling libs/waveview/debug.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/canvas/poly_line.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1156/1835] Compiling libs/qm-dsp/dsp/transforms/FFT.cpp
[1157/1835] Compiling libs/qm-dsp/dsp/onsets/DetectionFunction.cpp
[1158/1835] Compiling libs/qm-dsp/dsp/signalconditioning/FiltFilt.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../libs/canvas/canvas/flag.h:27,
                 from ../libs/canvas/flag.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:8,
                 from ../libs/canvas/canvas/flag.h:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1159/1835] Compiling libs/qm-dsp/dsp/phasevocoder/PhaseVocoder.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/lollipop.h:23,
                 from ../libs/canvas/lollipop.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/canvas/lollipop.cc:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1160/1835] Compiling libs/qm-dsp/dsp/tempotracking/DownBeat.cpp
[1161/1835] Compiling libs/qm-dsp/dsp/tempotracking/TempoTrack.cpp
[1162/1835] Compiling libs/qm-dsp/dsp/signalconditioning/Filter.cpp
../libs/aaf/AAFIEssenceFile.c: In function 'aafi_extractAudioEssenceFile':
../libs/aaf/AAFIEssenceFile.c:360:15: warning: variable 'tmp' set but not used [-Wunused-but-set-variable]
  360 |         int   tmp      = 0;
      |               ^~~

[1163/1835] Compiling libs/qm-dsp/dsp/rhythm/BeatSpectrum.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/lookup_table.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1164/1835] Compiling libs/qm-dsp/dsp/onsets/PeakPicking.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../libs/widgets/scroomer.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34,
                 from ../libs/widgets/widgets/scroomer.h:23,
                 from ../libs/widgets/scroomer.cc:23:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1165/1835] Compiling libs/qm-dsp/dsp/signalconditioning/Framer.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/widgets/tooltips.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1166/1835] Compiling libs/qm-dsp/ext/kissfft/tools/kiss_fftr.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/widgets/prompter.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1167/1835] Compiling libs/qm-dsp/dsp/signalconditioning/DFProcess.cpp
[1168/1835] Compiling libs/qm-dsp/dsp/rateconversion/Decimator.cpp
[1169/1835] Compiling libs/qm-dsp/dsp/chromagram/ConstantQ.cpp
../libs/qm-dsp/ext/kissfft/tools/kiss_fftr.c: In function 'kiss_fftr_alloc':
../libs/qm-dsp/ext/kissfft/tools/kiss_fftr.c:53:18: warning: cast increases required alignment of target type [-Wcast-align]
   53 |     st->tmpbuf = (kiss_fft_cpx *) (((char *) st->substate) + subsize);
      |                  ^

[1170/1835] Compiling libs/qm-dsp/base/SincWindow.cpp
[1171/1835] Compiling libs/qm-dsp/ext/kissfft/kiss_fft.c
[1172/1835] Compiling libs/qm-dsp/dsp/chromagram/Chromagram.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/canvas/widget.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1173/1835] Compiling libs/qm-dsp/base/Pitch.cpp
[1174/1835] Compiling libs/qm-dsp/dsp/keydetection/GetKeyMode.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtkaccelgroup.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaccelmap.h:28,
                 from ../libs/gtkmm2ext/actions.cc:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkuimanager.h:39,
                 from ../libs/gtkmm2ext/actions.cc:31:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../libs/gtkmm2ext/actions.cc:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1175/1835] Compiling libs/qm-dsp/base/KaiserWindow.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../libs/widgets/ardour_dropdown.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:6,
                 from ../libs/widgets/ardour_dropdown.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:28:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1176/1835] Compiling libs/qm-dsp/maths/KLDivergence.cpp
[1177/1835] Compiling libs/qm-dsp/maths/pca/pca.c
[1178/1835] Compiling libs/qm-dsp/maths/MathUtilities.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/widgets/popup.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/widgets/popup.cc:23:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1179/1835] Compiling libs/qm-dsp/maths/CosineDistance.cpp
[1180/1835] Compiling libs/qm-dsp/dsp/tempotracking/TempoTrackV2.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/canvas/step_button.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/canvas/step_button.cc:32:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1181/1835] Compiling libs/qm-dsp/dsp/tonal/ChangeDetectionFunction.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../libs/canvas/canvas/fill.h:30,
                 from ../libs/canvas/canvas/arc.h:22,
                 from ../libs/canvas/canvas/circle.h:24,
                 from ../libs/canvas/arc.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/canvas/arc.cc:29:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1182/1835] Compiling libs/qm-dsp/dsp/tonal/TCSgram.cpp
[1183/1835] Compiling libs/qm-dsp/dsp/tonal/TonalEstimator.cpp
[1184/1835] Compiling libs/qm-dsp/dsp/mfcc/MFCC.cpp
[1185/1835] Compiling libs/qm-dsp/dsp/wavelet/Wavelet.cpp
[1186/1835] Compiling libs/qm-dsp/maths/Correlation.cpp
[1187/1835] Compiling libs/qm-dsp/dsp/rateconversion/DecimatorB.cpp
[1188/1835] Compiling libs/vamp-pyin/libmain.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/rectangle.h:24,
                 from ../libs/canvas/canvas/ruler.h:28,
                 from ../libs/canvas/ruler.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:6,
                 from ../libs/canvas/ruler.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/canvas/ruler.cc:29:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:28:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1189/1835] Compiling libs/vamp-pyin/LocalCandidatePYIN.cpp
[1190/1835] Compiling libs/vamp-pyin/MonoPitchHMM.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../libs/gtkmm2ext/gtk_ui.cc:34:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1191/1835] Compiling libs/vamp-pyin/SparseHMM.cpp
[1192/1835] Compiling libs/vamp-pyin/MonoNoteParameters.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/outline.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/convert.h:29,
                 from ../libs/canvas/outline.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1193/1835] Compiling libs/vamp-pyin/MonoPitch.cpp
[1194/1835] Compiling libs/vamp-pyin/PYinVamp.cpp
[1195/1835] Compiling libs/vamp-pyin/Yin.cpp
[1196/1835] Compiling libs/vamp-pyin/MonoNote.cpp
[1197/1835] Compiling libs/vamp-pyin/YinVamp.cpp
[1198/1835] Compiling libs/vamp-pyin/YinUtil.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/stateful_image.h:28,
                 from ../libs/canvas/stateful_image.cc:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:8,
                 from ../libs/canvas/stateful_image.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1199/1835] Compiling libs/vamp-pyin/MonoNoteHMM.cpp
[1200/1835] Compiling tools/sanity_check/systemtest.cpp
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ctrl-interface/control_protocol/basic_ui.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1201/1835] Compiling tools/sanity_check/main.cpp
[1202/1835] Compiling libs/clearlooks-newer/support.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../libs/widgets/fader_widget.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1203/1835] Compiling libs/clearlooks-newer/clearlooks_draw_gummy.c
[1204/1835] Compiling libs/clearlooks-newer/clearlooks_draw_glossy.c
[1205/1835] Compiling libs/clearlooks-newer/widget-information.c
[1206/1835] Compiling libs/clearlooks-newer/clearlooks_theme_main.c
[1207/1835] Compiling libs/clearlooks-newer/cairo-support.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/image.h:29,
                 from ../libs/canvas/image.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/canvas/image.cc:22:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1208/1835] Compiling libs/clearlooks-newer/clearlooks_draw.c
[1209/1835] Compiling libs/clearlooks-newer/clearlooks_draw_inverted.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../libs/canvas/canvas/interpolated_curve.h:22,
                 from ../libs/canvas/canvas/curve.h:25,
                 from ../libs/canvas/curve.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1210/1835] Compiling libs/clearlooks-newer/animation.c
[1211/1835] Compiling libs/clearlooks-newer/clearlooks_style.c
[1212/1835] Compiling libs/clearlooks-newer/clearlooks_rc_style.c
[1213/1835] Compiling libs/vamp-plugins/ebu_r128_proc.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:30,
                 from ../libs/widgets/choice.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/choice.h:27,
                 from ../libs/widgets/choice.cc:21:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1214/1835] Compiling libs/vamp-plugins/OnsetDetect.cpp
[1215/1835] Compiling libs/vamp-plugins/BeatTrack.cpp
[1216/1835] Compiling libs/vamp-plugins/KeyDetect.cpp
[1217/1835] Compiling libs/vamp-plugins/TonalChangeDetect.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/widgets/widgets/ui_config.h:27,
                 from ../libs/widgets/ui_config.cc:1:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:8,
                 from ../libs/widgets/widgets/ui_config.h:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1218/1835] Compiling libs/vamp-plugins/AmplitudeFollower.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/main.h:33,
                 from ../libs/widgets/stateful_button.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/main.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/button.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/togglebutton.h:31,
                 from ../libs/widgets/widgets/stateful_button.h:25,
                 from ../libs/widgets/stateful_button.cc:26:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1219/1835] Compiling libs/vamp-plugins/ZeroCrossing.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/widgets/frame.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../libs/widgets/frame.cc:22:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1220/1835] Compiling libs/vamp-plugins/TruePeak.cpp
[1221/1835] Compiling libs/vamp-plugins/Transcription.cpp
../libs/qm-dsp/maths/MathUtilities.cpp: In static member function 'static int MathUtilities::compareInt(const void*, const void*)':
../libs/qm-dsp/maths/MathUtilities.cpp:247:13: warning: cast from type 'const void*' to type 'int*' casts away qualifiers [-Wcast-qual]
  247 |   return ( *(int*)a - *(int*)b );
      |             ^~~~~~~
../libs/qm-dsp/maths/MathUtilities.cpp:247:24: warning: cast from type 'const void*' to type 'int*' casts away qualifiers [-Wcast-qual]
  247 |   return ( *(int*)a - *(int*)b );
      |                        ^~~~~~~

[1222/1835] Compiling libs/vamp-plugins/PercussionOnsetDetector.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../libs/widgets/ardour_knob.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:6,
                 from ../libs/widgets/ardour_knob.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:28:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1223/1835] Compiling libs/vamp-plugins/SpectralCentroid.cpp
[1224/1835] Compiling libs/vamp-plugins/SimilarityPlugin.cpp
[1225/1835] Compiling libs/vamp-plugins/ChromagramPlugin.cpp
../libs/aaf/AAFIParser.c: In function 'parse_SourceMob':
../libs/aaf/AAFIParser.c:292:21: warning: variable 'rc' set but not used [-Wunused-but-set-variable]
  292 |                 int rc = snprintf (audioEssenceFile->originationDate, sizeof (((aafiAudioEssenceFile*)0)->originationDate), "%04u:%02u:%02u",
      |                     ^~

[1226/1835] Compiling libs/vamp-plugins/BarBeatTrack.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/clearlooks-newer/clearlooks_theme_main.c:2:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gmodule.h:30,
                 from ../libs/clearlooks-newer/clearlooks_theme_main.c:1:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:1: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      | ^~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:725:1: note: declared here
  725 | {
      | ^
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:3: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[1227/1835] Compiling libs/vamp-plugins/Onset.cpp
[1228/1835] Compiling libs/vamp-plugins/plugins.cpp
[1229/1835] Compiling libs/vamp-plugins/EBUr128.cpp
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../libs/widgets/ardour_display.cc:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:6,
                 from ../libs/widgets/ardour_display.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:28:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1230/1835] Compiling libs/tk/suil/x11_in_gtk2.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/clearlooks-newer/support.h:4,
                 from ../libs/clearlooks-newer/support.c:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:1: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      | ^~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:725:1: note: declared here
  725 | {
      | ^
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:3: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/clearlooks-newer/support.c: In function 'clearlooks_get_parent_bg':
/usr/include/glib-2.0/gobject/gtype.h:2656:48: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2656 | #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
      |                                                ^
/usr/include/glib-2.0/gobject/gtype.h:528:66: note: in expansion of macro '_G_TYPE_CIC'
  528 | #define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ytk/ytk/gtk/gtkobject.h:48:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
   48 | #define GTK_OBJECT(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GTK_TYPE_OBJECT, GtkObject))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ytk/ytk/gtk/gtkobject.h:93:44: note: in expansion of macro 'GTK_OBJECT'
   93 | #define GTK_OBJECT_FLAGS(obj)             (GTK_OBJECT (obj)->flags)
      |                                            ^~~~~~~~~~
../libs/tk/ytk/ytk/gtk/gtkwidget.h:204:44: note: in expansion of macro 'GTK_OBJECT_FLAGS'
  204 | #define GTK_WIDGET_FLAGS(wid)             (GTK_OBJECT_FLAGS (wid))
      |                                            ^~~~~~~~~~~~~~~~
../libs/tk/ytk/ytk/gtk/gtkwidget.h:228:45: note: in expansion of macro 'GTK_WIDGET_FLAGS'
  228 | #define GTK_WIDGET_NO_WINDOW(wid)         ((GTK_WIDGET_FLAGS (wid) & GTK_NO_WINDOW) != 0)
      |                                             ^~~~~~~~~~~~~~~~
../libs/clearlooks-newer/support.c:59:26: note: in expansion of macro 'GTK_WIDGET_NO_WINDOW'
   59 |         while (parent && GTK_WIDGET_NO_WINDOW (parent) && !((GTK_IS_NOTEBOOK (parent)) || (GTK_IS_TOOLBAR (parent))))
      |                          ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ytk/ytk/gtk/gtknotebook.h:44:45: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
   44 | #define GTK_IS_NOTEBOOK(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_NOTEBOOK))
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/clearlooks-newer/support.c:59:62: note: in expansion of macro 'GTK_IS_NOTEBOOK'
   59 |         while (parent && GTK_WIDGET_NO_WINDOW (parent) && !((GTK_IS_NOTEBOOK (parent)) || (GTK_IS_TOOLBAR (parent))))
      |                                                              ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ytk/ytk/gtk/gtktoolbar.h:49:38: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
   49 | #define GTK_IS_TOOLBAR(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TOOLBAR))
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/clearlooks-newer/support.c:59:92: note: in expansion of macro 'GTK_IS_TOOLBAR'
   59 |         while (parent && GTK_WIDGET_NO_WINDOW (parent) && !((GTK_IS_NOTEBOOK (parent)) || (GTK_IS_TOOLBAR (parent))))
      |                                                                                            ^~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:2656:48: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2656 | #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
      |                                                ^
/usr/include/glib-2.0/gobject/gtype.h:528:66: note: in expansion of macro '_G_TYPE_CIC'
  528 | #define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ytk/ytk/gtk/gtkwidget.h:137:44: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
  137 | #define GTK_WIDGET(widget)                (G_TYPE_CHECK_INSTANCE_CAST ((widget), GTK_TYPE_WIDGET, GtkWidget))
      |                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/tk/ytk/ytk/gtk/gtkwidget.h:166:44: note: in expansion of macro 'GTK_WIDGET'
  166 | #define GTK_WIDGET_STATE(wid)             (GTK_WIDGET (wid)->state)
      |                                            ^~~~~~~~~~
../libs/clearlooks-newer/support.c:65:22: note: in expansion of macro 'GTK_WIDGET_STATE'
   65 |         state_type = GTK_WIDGET_STATE (parent);
      |                      ^~~~~~~~~~~~~~~~

[1231/1835] Compiling libs/surfaces/generic_midi/gmcp_gui.cc
[1232/1835] Compiling libs/surfaces/generic_midi/midifunction.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/widgets/fastmeter.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/widgets/fastmeter.cc:27:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../libs/widgets/fastmeter.cc:30:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1233/1835] Compiling libs/surfaces/generic_midi/midiinvokable.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/clearlooks-newer/widget-information.c:1:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:1: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      | ^~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:725:1: note: declared here
  725 | {
      | ^
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:3: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[1234/1835] Compiling libs/surfaces/generic_midi/interface.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/clearlooks-newer/animation.h:22,
                 from ../libs/clearlooks-newer/animation.c:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:1: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      | ^~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:725:1: note: declared here
  725 | {
      | ^
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:3: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[1235/1835] Compiling libs/surfaces/generic_midi/generic_midi_control_protocol.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ctrl-interface/control_protocol/control_protocol.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1236/1835] Compiling libs/surfaces/generic_midi/midiaction.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../libs/canvas/meter.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/canvas/meter.cc:26:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1237/1835] Compiling libs/surfaces/generic_midi/midicontrollable.cc
[1238/1835] Compiling libs/surfaces/faderport/faderport_interface.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/widgets/ardour_icon.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/widgets/widgets/ardour_icon.h:24,
                 from ../libs/widgets/ardour_icon.cc:25:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1239/1835] Compiling libs/surfaces/faderport/operations.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtkstyle.h:35,
                 from ../libs/clearlooks-newer/clearlooks_style.h:24,
                 from ../libs/clearlooks-newer/clearlooks_rc_style.c:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/clearlooks-newer/animation.h:22,
                 from ../libs/clearlooks-newer/clearlooks_style.h:29:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:1: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      | ^~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:725:1: note: declared here
  725 | {
      | ^
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:3: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[1240/1835] Compiling libs/surfaces/faderport/faderport.cc
[1241/1835] Compiling libs/surfaces/faderport/gui.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/xfade_curve.h:24,
                 from ../libs/canvas/xfade_curve.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1242/1835] Compiling libs/surfaces/faderport8/actions.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/clearlooks-newer/cairo-support.h:3,
                 from ../libs/clearlooks-newer/ge-support.h:5,
                 from ../libs/clearlooks-newer/clearlooks_types.h:4,
                 from ../libs/clearlooks-newer/clearlooks_draw.h:4,
                 from ../libs/clearlooks-newer/clearlooks_draw_glossy.c:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gmodule.h:30,
                 from ../libs/clearlooks-newer/general-support.h:2,
                 from ../libs/clearlooks-newer/ge-support.h:4:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:1: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      | ^~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:725:1: note: declared here
  725 | {
      | ^
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:3: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[1243/1835] Compiling libs/surfaces/faderport8/faderport8_interface.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/clearlooks-newer/cairo-support.h:3,
                 from ../libs/clearlooks-newer/ge-support.h:5,
                 from ../libs/clearlooks-newer/clearlooks_types.h:4,
                 from ../libs/clearlooks-newer/clearlooks_draw.h:4,
                 from ../libs/clearlooks-newer/clearlooks_draw_inverted.c:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gmodule.h:30,
                 from ../libs/clearlooks-newer/general-support.h:2,
                 from ../libs/clearlooks-newer/ge-support.h:4:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:1: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      | ^~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:725:1: note: declared here
  725 | {
      | ^
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:3: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[1244/1835] Compiling libs/surfaces/faderport8/gui.cc
[1245/1835] Compiling libs/surfaces/faderport8/fp8_controls.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/eventbox.h:31,
                 from ../libs/gtkmm2ext/gtkmm2ext/cairo_widget.h:26,
                 from ../libs/widgets/ardour_fader.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/eventbox.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/widgets/ardour_fader.cc:29:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1246/1835] Compiling libs/surfaces/faderport8/callbacks.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/clearlooks-newer/cairo-support.h:3,
                 from ../libs/clearlooks-newer/ge-support.h:5,
                 from ../libs/clearlooks-newer/clearlooks_types.h:4,
                 from ../libs/clearlooks-newer/clearlooks_draw.h:4,
                 from ../libs/clearlooks-newer/clearlooks_draw_gummy.c:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gmodule.h:30,
                 from ../libs/clearlooks-newer/general-support.h:2,
                 from ../libs/clearlooks-newer/ge-support.h:4:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:1: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      | ^~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:725:1: note: declared here
  725 | {
      | ^
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:3: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[1247/1835] Compiling libs/surfaces/faderport8/fp8_strip.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/widgets/barcontroller.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/controllable.h:31,
                 from ../libs/widgets/barcontroller.cc:27:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/widgets/barcontroller.cc:30:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1248/1835] Compiling libs/surfaces/faderport8/faderport8.cc
[1249/1835] Compiling libs/surfaces/faderport8/faderport16_interface.cc
[1250/1835] Compiling libs/surfaces/faderport8/gui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../libs/ardour/session_state.cc:99:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/session_state.cc:106:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[1251/1835] Linking build/libs/ardouralsautil/libardouralsautil.so
[1252/1835] Compiling libs/surfaces/faderport8/callbacks.cc
[1253/1835] Compiling libs/surfaces/faderport8/actions.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/clearlooks-newer/cairo-support.h:3,
                 from ../libs/clearlooks-newer/ge-support.h:5,
                 from ../libs/clearlooks-newer/clearlooks_types.h:4,
                 from ../libs/clearlooks-newer/clearlooks_draw.h:4,
                 from ../libs/clearlooks-newer/clearlooks_draw.c:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gmodule.h:30,
                 from ../libs/clearlooks-newer/general-support.h:2,
                 from ../libs/clearlooks-newer/ge-support.h:4:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:1: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      | ^~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:725:1: note: declared here
  725 | {
      | ^
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:3: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[1254/1835] Compiling libs/surfaces/faderport8/fp8_controls.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/clearlooks-newer/cairo-support.h:3,
                 from ../libs/clearlooks-newer/cairo-support.c:3:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gmodule.h:30,
                 from ../libs/clearlooks-newer/general-support.h:2,
                 from ../libs/clearlooks-newer/cairo-support.c:2:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:1: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      | ^~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:725:1: note: declared here
  725 | {
      | ^
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:3: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[1255/1835] Compiling libs/surfaces/faderport8/fp8_strip.cc
[1256/1835] Compiling libs/surfaces/faderport8/faderport8.cc
[1257/1835] Linking build/libs/gtkmm2ext/libgtkmm2ext.so
[1258/1835] Compiling libs/surfaces/faderport8/gui.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:30,
                 from ../libs/canvas/canvas.cc:34:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/adjustment.h:7,
                 from ../libs/canvas/canvas.cc:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/object.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/adjustment.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h:25,
                 from ../libs/canvas/canvas.cc:37:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1259/1835] Compiling libs/surfaces/faderport8/callbacks.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/widgets/binding_proxy.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/controllable.h:31,
                 from ../libs/widgets/binding_proxy.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1260/1835] Compiling libs/surfaces/faderport8/fp8_strip.cc
[1261/1835] Compiling libs/surfaces/faderport8/fp8_controls.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/suil/x11_in_gtk2.c:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/suil/x11_in_gtk2.c:34:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:1: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      | ^~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:725:1: note: declared here
  725 | {
      | ^
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:3: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~

[1262/1835] Compiling libs/surfaces/faderport8/faderport2_interface.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/eventbox.h:31,
                 from ../libs/gtkmm2ext/gtkmm2ext/cairo_widget.h:26,
                 from ../libs/widgets/widgets/ardour_spacer.h:24,
                 from ../libs/widgets/ardour_spacer.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/eventbox.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1263/1835] Compiling libs/surfaces/faderport8/actions.cc
[1264/1835] Compiling libs/surfaces/faderport8/faderport8.cc
[1265/1835] Compiling libs/surfaces/cc121/gui.cc
In file included from /usr/include/boost/math/policies/error_handling.hpp:11,
                 from /usr/include/boost/math/distributions/detail/common_error_handling.hpp:12,
                 from /usr/include/boost/math/distributions/arcsine.hpp:35,
                 from /usr/include/boost/math/distributions.hpp:15,
                 from ../libs/vamp-pyin/MonoPitchHMM.h:19,
                 from ../libs/vamp-pyin/MonoPitchHMM.cpp:14:
/usr/include/boost/math/tools/config.hpp:23:6: warning: #warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)" [-Wcpp]
   23 | #    warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)"
      |      ^~~~~~~

[1266/1835] Compiling libs/surfaces/cc121/cc121_interface.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/widgets/tabbable.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../libs/widgets/tabbable.cc:23:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1267/1835] Compiling libs/surfaces/cc121/operations.cc
[1268/1835] Compiling libs/surfaces/cc121/cc121.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/widgets/slider_controller.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34,
                 from ../libs/widgets/widgets/ardour_fader.h:26,
                 from ../libs/widgets/slider_controller.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1269/1835] Compiling libs/surfaces/mackie/surface_port.cc
[1270/1835] Compiling libs/surfaces/mackie/controls.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../libs/widgets/tearoff.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/xml++.h:44,
                 from ../libs/widgets/tearoff.cc:23:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:31,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:33:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1271/1835] Compiling libs/surfaces/mackie/button.cc
In file included from /usr/include/boost/math/policies/error_handling.hpp:11,
                 from /usr/include/boost/math/distributions/detail/common_error_handling.hpp:12,
                 from /usr/include/boost/math/distributions/arcsine.hpp:35,
                 from /usr/include/boost/math/distributions.hpp:15,
                 from ../libs/vamp-pyin/MonoNoteHMM.h:20,
                 from ../libs/vamp-pyin/MonoNote.h:17,
                 from ../libs/vamp-pyin/MonoNote.cpp:14:
/usr/include/boost/math/tools/config.hpp:23:6: warning: #warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)" [-Wcpp]
   23 | #    warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)"
      |      ^~~~~~~

[1272/1835] Compiling libs/surfaces/mackie/types.cc
In file included from /usr/include/boost/math/policies/error_handling.hpp:11,
                 from /usr/include/boost/math/distributions/detail/common_error_handling.hpp:12,
                 from /usr/include/boost/math/distributions/arcsine.hpp:35,
                 from /usr/include/boost/math/distributions.hpp:15,
                 from ../libs/vamp-pyin/MonoPitchHMM.h:19,
                 from ../libs/vamp-pyin/MonoPitch.h:17,
                 from ../libs/vamp-pyin/MonoPitch.cpp:14:
/usr/include/boost/math/tools/config.hpp:23:6: warning: #warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)" [-Wcpp]
   23 | #    warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)"
      |      ^~~~~~~

[1273/1835] Compiling libs/surfaces/mackie/meter.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/canvas/item.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/convert.h:29,
                 from ../libs/canvas/item.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1274/1835] Compiling libs/surfaces/mackie/jog.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/clearlooks-newer/clearlooks_style.c:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                               ^~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:79: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                               ^~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:1: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      | ^~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:725:1: note: declared here
  725 | {
      | ^
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:3: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
../libs/clearlooks-newer/clearlooks_style.c: In function 'clearlooks_set_widget_parameters':
/usr/include/glib-2.0/gobject/gtype.h:2656:48: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2656 | #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
      |                                                ^
/usr/include/glib-2.0/gobject/gtype.h:528:66: note: in expansion of macro '_G_TYPE_CIC'
  528 | #define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
      |                                                                  ^~~~~~~~~~~
../libs/clearlooks-newer/clearlooks_style.h:38:45: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
   38 | #define CLEARLOOKS_STYLE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), CLEARLOOKS_TYPE_STYLE, ClearlooksStyle))
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/clearlooks-newer/clearlooks_style.c:64:77: note: in expansion of macro 'CLEARLOOKS_STYLE'
   64 |         params->style_functions = &(clearlooks_style_class->style_functions[CLEARLOOKS_STYLE (style)->style]);
      |                                                                             ^~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:2656:48: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2656 | #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
      |                                                ^
/usr/include/glib-2.0/gobject/gtype.h:528:66: note: in expansion of macro '_G_TYPE_CIC'
  528 | #define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
      |                                                                  ^~~~~~~~~~~
../libs/clearlooks-newer/clearlooks_style.h:38:45: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
   38 | #define CLEARLOOKS_STYLE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), CLEARLOOKS_TYPE_STYLE, ClearlooksStyle))
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/clearlooks-newer/clearlooks_style.c:75:31: note: in expansion of macro 'CLEARLOOKS_STYLE'
   75 |         params->radius      = CLEARLOOKS_STYLE (style)->radius;
      |                               ^~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:2656:48: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2656 | #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
      |                                                ^
/usr/include/glib-2.0/gobject/gtype.h:528:66: note: in expansion of macro '_G_TYPE_CIC'
  528 | #define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
      |                                                                  ^~~~~~~~~~~
../libs/clearlooks-newer/clearlooks_style.h:38:45: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
   38 | #define CLEARLOOKS_STYLE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), CLEARLOOKS_TYPE_STYLE, ClearlooksStyle))
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/clearlooks-newer/clearlooks_style.c:87:28: note: in expansion of macro 'CLEARLOOKS_STYLE'
   87 |         params->parentbg = CLEARLOOKS_STYLE (style)->colors.bg[state_type];
      |                            ^~~~~~~~~~~~~~~~
In file included from /usr/lib/glib-2.0/include/glibconfig.h:9,
                 from /usr/include/glib-2.0/glib/gtypes.h:34:
../libs/clearlooks-newer/clearlooks_style.c: In function 'set_transparency':
/usr/include/glib-2.0/gobject/gtype.h:2672:27: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual]
 2672 |   GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
      |                           ^
/usr/include/glib-2.0/glib/gmacros.h:1241:8: note: in definition of macro '_G_BOOLEAN_EXPR_IMPL'
 1241 |    if (expr)                                    \
      |        ^~~~
/usr/include/glib-2.0/glib/gmacros.h:1248:43: note: in expansion of macro '_G_BOOLEAN_EXPR'
 1248 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
      |                                           ^~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmessages.h:664:9: note: in expansion of macro 'G_LIKELY'
  664 |     if (G_LIKELY (expr)) \
      |         ^~~~~~~~
../libs/clearlooks-newer/clearlooks_style.c:1432:9: note: in expansion of macro 'g_return_val_if_fail'
 1432 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:541:66: note: in expansion of macro '_G_TYPE_CIT'
  541 | #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
      |                                                                  ^~~~~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-core.h:159:39: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_TYPE'
  159 | #define GDK_IS_PIXBUF(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXBUF))
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/clearlooks-newer/clearlooks_style.c:1432:31: note: in expansion of macro 'GDK_IS_PIXBUF'
 1432 |         g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
      |                               ^~~~~~~~~~~~~

[1275/1835] Compiling libs/surfaces/mackie/midi_byte_array.cc
[1276/1835] Compiling libs/surfaces/mackie/jog_wheel.cc
In file included from /usr/include/boost/math/policies/error_handling.hpp:11,
                 from /usr/include/boost/math/distributions/detail/common_error_handling.hpp:12,
                 from /usr/include/boost/math/distributions/arcsine.hpp:35,
                 from /usr/include/boost/math/distributions.hpp:15,
                 from ../libs/vamp-pyin/MonoNoteHMM.h:20,
                 from ../libs/vamp-pyin/MonoNoteHMM.cpp:14:
/usr/include/boost/math/tools/config.hpp:23:6: warning: #warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)" [-Wcpp]
   23 | #    warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)"
      |      ^~~~~~~

[1277/1835] Compiling libs/surfaces/mackie/pot.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../libs/widgets/searchbar.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/widgets/widgets/searchbar.h:21,
                 from ../libs/widgets/searchbar.cc:22:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1278/1835] Compiling libs/surfaces/mackie/device_profile.cc
[1279/1835] Linking build/libs/canvas/libcanvas.so
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/widgets/ardour_spinner.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/widgets/ardour_spinner.cc:21:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1280/1835] Compiling libs/surfaces/mackie/fader.cc
[1281/1835] Compiling libs/surfaces/mackie/device_info.cc
[1282/1835] Compiling libs/surfaces/mackie/surface.cc
[1283/1835] Compiling libs/surfaces/mackie/subview.cc
[1284/1835] Compiling libs/surfaces/mackie/interface.cc
[1285/1835] Compiling libs/surfaces/mackie/gui.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/toggleaction.h:29,
                 from ../libs/widgets/ardour_button.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:6,
                 from ../libs/widgets/ardour_button.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:28:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/widgets/ardour_button.cc:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1286/1835] Compiling libs/surfaces/mackie/led.cc
[1287/1835] Compiling libs/surfaces/mackie/strip.cc
[1288/1835] Compiling libs/surfaces/mackie/mcp_buttons.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/widgets/ardour_ctrl_base.cc:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:6,
                 from ../libs/widgets/ardour_ctrl_base.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/widgets/ardour_ctrl_base.cc:31:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:28:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/widgets/ardour_ctrl_base.cc:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1289/1835] Compiling libs/surfaces/mackie/mackie_control_protocol.cc
[1290/1835] Compiling libs/surfaces/mackie/mackie_control_protocol.cc
[1291/1835] Compiling libs/surfaces/mackie/device_profile.cc
In file included from /usr/include/boost/math/policies/error_handling.hpp:11,
                 from /usr/include/boost/math/distributions/detail/common_error_handling.hpp:12,
                 from /usr/include/boost/math/distributions/arcsine.hpp:35,
                 from /usr/include/boost/math/distributions.hpp:15,
                 from ../libs/vamp-pyin/MonoNoteHMM.h:20,
                 from ../libs/vamp-pyin/MonoNote.h:17,
                 from ../libs/vamp-pyin/YinVamp.cpp:15:
/usr/include/boost/math/tools/config.hpp:23:6: warning: #warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)" [-Wcpp]
   23 | #    warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)"
      |      ^~~~~~~

[1292/1835] Compiling libs/surfaces/mackie/jog_wheel.cc
[1293/1835] Compiling libs/surfaces/mackie/mcp_buttons.cc
[1294/1835] Compiling libs/surfaces/mackie/midi_byte_array.cc
[1295/1835] Compiling libs/surfaces/mackie/fader.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/export_handler.h:36,
                 from ../libs/ardour/ardour/export_profile_manager.h:38,
                 from ../libs/ardour/enums.cc:37:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/enums.cc:33:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[1296/1835] Compiling libs/surfaces/mackie/strip.cc
[1297/1835] Compiling libs/surfaces/mackie/subview.cc
In file included from /usr/include/boost/math/policies/error_handling.hpp:11,
                 from /usr/include/boost/math/distributions/detail/common_error_handling.hpp:12,
                 from /usr/include/boost/math/distributions/arcsine.hpp:35,
                 from /usr/include/boost/math/distributions.hpp:15,
                 from ../libs/vamp-pyin/MonoNoteHMM.h:20,
                 from ../libs/vamp-pyin/MonoNote.h:17,
                 from ../libs/vamp-pyin/PYinVamp.cpp:15:
/usr/include/boost/math/tools/config.hpp:23:6: warning: #warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)" [-Wcpp]
   23 | #    warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)"
      |      ^~~~~~~

[1298/1835] Compiling libs/surfaces/mackie/types.cc
In file included from /usr/include/boost/math/policies/error_handling.hpp:11,
                 from /usr/include/boost/math/distributions/detail/common_error_handling.hpp:12,
                 from /usr/include/boost/math/distributions/arcsine.hpp:35,
                 from /usr/include/boost/math/distributions.hpp:15,
                 from ../libs/vamp-pyin/MonoPitchHMM.h:19,
                 from ../libs/vamp-pyin/MonoPitch.h:17,
                 from ../libs/vamp-pyin/LocalCandidatePYIN.cpp:15:
/usr/include/boost/math/tools/config.hpp:23:6: warning: #warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)" [-Wcpp]
   23 | #    warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)"
      |      ^~~~~~~

[1299/1835] Compiling libs/surfaces/mackie/pot.cc
[1300/1835] Compiling libs/surfaces/mackie/jog.cc
[1301/1835] Linking build/libs/widgets/libwidgets.so
[1302/1835] Linking build/tools/sanity_check/sanityCheck
[1303/1835] Compiling libs/surfaces/mackie/led.cc
[1304/1835] Compiling libs/surfaces/mackie/button.cc
[1305/1835] Linking build/libs/vamp-pyin/libardourvamppyin.so
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/waveview/waveview/wave_view.h:31,
                 from ../libs/waveview/waveview/wave_view_private.h:25,
                 from ../libs/waveview/wave_view_private.cc:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/pthread_utils.h:49,
                 from ../libs/waveview/wave_view_private.cc:25:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1306/1835] Compiling libs/surfaces/mackie/device_info.cc
[1307/1835] Compiling libs/surfaces/mackie/controls.cc
[1308/1835] Compiling libs/surfaces/mackie/gui.cc
[1309/1835] Compiling libs/surfaces/mackie/surface_port.cc
[1310/1835] Linking build/libs/qm-dsp/libqm-dsp.a
[1311/1835] Compiling libs/surfaces/mackie/uf8_interface.cc
[1312/1835] Compiling libs/surfaces/mackie/surface.cc
[1313/1835] Compiling libs/surfaces/mackie/meter.cc
[1314/1835] Compiling libs/surfaces/us2400/button.cc
[1315/1835] Compiling libs/surfaces/us2400/jog_wheel.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/generic_midi/midifunction.cc:30:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1316/1835] Compiling libs/surfaces/us2400/device_profile.cc
[1317/1835] Compiling libs/surfaces/us2400/led.cc
[1318/1835] Compiling libs/surfaces/us2400/controls.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/faderport/operations.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1319/1835] Compiling libs/surfaces/us2400/gui.cc
[1320/1835] Compiling libs/surfaces/us2400/midi_byte_array.cc
[1321/1835] Linking build/libs/vamp-plugins/libardourvampplugins.so
[1322/1835] Compiling libs/surfaces/us2400/surface_port.cc
[1323/1835] Linking build/libs/clearlooks-newer/libclearlooks.so
[1324/1835] Compiling libs/surfaces/us2400/pot.cc
[1325/1835] Compiling libs/surfaces/us2400/surface.cc
[1326/1835] Compiling libs/surfaces/us2400/types.cc
[1327/1835] Compiling libs/surfaces/us2400/strip.cc
[1328/1835] Compiling libs/surfaces/us2400/us2400_control_protocol.cc
[1329/1835] Compiling libs/surfaces/us2400/interface.cc
[1330/1835] Compiling libs/surfaces/us2400/meter.cc
[1331/1835] Compiling libs/surfaces/us2400/mcp_buttons.cc
[1332/1835] Compiling libs/surfaces/us2400/jog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/mackie/jog_wheel.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1333/1835] Compiling libs/surfaces/us2400/fader.cc
[1334/1835] Compiling libs/surfaces/us2400/device_info.cc
[1335/1835] Compiling libs/surfaces/launch_control_xl/launch_control_xl.cc
[1336/1835] Compiling libs/surfaces/launch_control_xl/midi_byte_array.cc
[1337/1835] Compiling libs/surfaces/launch_control_xl/controllers.cc
[1338/1835] Compiling libs/surfaces/launch_control_xl/leds.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/cc121/operations.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1339/1835] Compiling libs/surfaces/launch_control_xl/interface.cc
[1340/1835] Compiling libs/surfaces/launch_control_xl/gui.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/surfaces/faderport/gui.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/surfaces/faderport/gui.cc:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1341/1835] Compiling libs/surfaces/osc/osc_select_observer.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/mackie/jog_wheel.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1342/1835] Compiling libs/surfaces/osc/osc.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/surfaces/faderport8/gui.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/surfaces/faderport8/gui.cc:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1343/1835] Compiling libs/surfaces/osc/osc_cue_observer.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../libs/surfaces/generic_midi/gmcp_gui.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1344/1835] Compiling libs/surfaces/osc/interface.cc
[1345/1835] Compiling libs/surfaces/osc/osc_gui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/mackie/surface_port.cc:38:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1346/1835] Compiling libs/surfaces/osc/osc_controllable.cc
[1347/1835] Compiling libs/surfaces/osc/osc_route_observer.cc
[1348/1835] Compiling libs/surfaces/osc/osc_global_observer.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/surfaces/faderport8/gui.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/surfaces/faderport8/gui.cc:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1349/1835] Compiling libs/surfaces/console1/console1_interface.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/mackie/mcp_buttons.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1350/1835] Compiling libs/surfaces/console1/c1_gui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/waveview/wave_view.cc:42:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/general.h:23,
                 from ../libs/waveview/wave_view.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/waveview/wave_view.cc:27:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/waveview/wave_view.cc:45:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/waveview/wave_view.cc:46:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1351/1835] Compiling libs/surfaces/console1/c1_plugin_operations.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/surfaces/faderport8/gui.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/surfaces/faderport8/gui.cc:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1352/1835] Compiling libs/surfaces/console1/c1_operations.cc
[1353/1835] Compiling libs/surfaces/console1/console1.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/faderport8/fp8_strip.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1354/1835] Compiling libs/surfaces/launchpad_pro/gui.cc
[1355/1835] Compiling libs/surfaces/launchpad_pro/lppro.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/faderport8/fp8_strip.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1356/1835] Compiling libs/surfaces/launchpad_pro/interface.cc
[1357/1835] Compiling libs/surfaces/launchpad_x/launchpad_mini_interface.cc
[1358/1835] Compiling libs/surfaces/launchpad_x/lpx.cc
[1359/1835] Compiling libs/surfaces/launchpad_x/gui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/faderport8/actions.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../libs/surfaces/faderport8/actions.cc:32:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/pbd/pbd/timing.h:22,
                 from ../libs/ardour/ardour/plugin_insert.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/ardour/ardour/ardour.h:34,
                 from ../libs/ardour/ardour/plugin_insert.h:35:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1360/1835] Compiling libs/surfaces/launchpad_x/lpx.cc
[1361/1835] Compiling libs/surfaces/launchpad_x/gui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/faderport8/actions.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../libs/surfaces/faderport8/actions.cc:32:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/pbd/pbd/timing.h:22,
                 from ../libs/ardour/ardour/plugin_insert.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/ardour/ardour/ardour.h:34,
                 from ../libs/ardour/ardour/plugin_insert.h:35:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1362/1835] Compiling libs/surfaces/launchpad_x/launchpad_x_interface.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/surfaces/cc121/gui.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/surfaces/cc121/gui.cc:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1363/1835] Compiling libs/surfaces/launchkey_4/launchkey_4_interface.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/mackie/mcp_buttons.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1364/1835] Compiling libs/surfaces/launchkey_4/gui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/faderport8/fp8_strip.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1365/1835] Compiling libs/surfaces/launchkey_4/launchkey_4.cc
[1366/1835] Compiling libs/surfaces/push2/mix.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/surfaces/mackie/subview.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1367/1835] Compiling libs/surfaces/push2/cues.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/faderport8/callbacks.cc:24:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../libs/surfaces/faderport8/callbacks.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/pbd/pbd/timing.h:22,
                 from ../libs/ardour/ardour/plugin_insert.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/ardour/ardour/ardour.h:34,
                 from ../libs/ardour/ardour/plugin_insert.h:35:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1368/1835] Linking build/libs/tk/suil/libsuil_x11_in_gtk2.so
[1369/1835] Compiling libs/surfaces/push2/midi_byte_array.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/mackie/surface_port.cc:38:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1370/1835] Compiling libs/surfaces/push2/splash.cc
[1371/1835] Compiling libs/surfaces/push2/knob.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/faderport8/actions.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../libs/surfaces/faderport8/actions.cc:32:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/pbd/pbd/timing.h:22,
                 from ../libs/ardour/ardour/plugin_insert.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/ardour/ardour/ardour.h:34,
                 from ../libs/ardour/ardour/plugin_insert.h:35:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1372/1835] Compiling libs/surfaces/push2/level_meter.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/us2400/jog_wheel.cc:21:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1373/1835] Compiling libs/surfaces/push2/interface.cc
[1374/1835] Compiling libs/surfaces/push2/canvas.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ctrl-interface/midi_surface/midi_surface.cc:30:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1375/1835] Compiling libs/surfaces/push2/menu.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/mackie/strip.cc:45:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1376/1835] Compiling libs/surfaces/push2/leds.cc
[1377/1835] Compiling libs/surfaces/push2/layout.cc
[1378/1835] Compiling libs/surfaces/push2/utils.cc
[1379/1835] Compiling libs/surfaces/push2/scale.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/surfaces/mackie/subview.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1380/1835] Compiling libs/surfaces/push2/gui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/faderport8/callbacks.cc:24:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../libs/surfaces/faderport8/callbacks.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/pbd/pbd/timing.h:22,
                 from ../libs/ardour/ardour/plugin_insert.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/ardour/ardour/ardour.h:34,
                 from ../libs/ardour/ardour/plugin_insert.h:35:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1381/1835] Compiling libs/surfaces/push2/buttons.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/surfaces/osc/osc.h:46,
                 from ../libs/surfaces/osc/interface.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1382/1835] Compiling libs/surfaces/push2/push2.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/faderport/faderport.cc:52:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1383/1835] Compiling libs/surfaces/push2/track_mix.cc
[1384/1835] Compiling libs/surfaces/contourdesign/button_config_widget.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/faderport8/callbacks.cc:24:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../libs/surfaces/faderport8/callbacks.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/pbd/pbd/timing.h:22,
                 from ../libs/ardour/ardour/plugin_insert.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/ardour/ardour/ardour.h:34,
                 from ../libs/ardour/ardour/plugin_insert.h:35:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1385/1835] Compiling libs/surfaces/contourdesign/contourdesign_gui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/mackie/strip.cc:45:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1386/1835] Compiling libs/surfaces/contourdesign/jump_distance_widget.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/us2400/surface_port.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1387/1835] Compiling libs/surfaces/contourdesign/contourdesign.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/surfaces/osc/osc.h:46,
                 from ../libs/surfaces/osc/osc_controllable.cc:27:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1388/1835] Compiling libs/surfaces/contourdesign/interface.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/surfaces/launchpad_x/lpx.h:41,
                 from ../libs/surfaces/launchpad_x/launchpad_mini_interface.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../libs/surfaces/launchpad_x/launchpad_mini_interface.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1389/1835] Compiling libs/panners/2in2out/panner_2in2out.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../libs/surfaces/generic_midi/generic_midi_control_protocol.cc:52:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../libs/surfaces/generic_midi/generic_midi_control_protocol.cc: In member function 'MIDIControllable* GenericMidiControlProtocol::create_binding(const XMLNode&)':
../libs/surfaces/generic_midi/generic_midi_control_protocol.cc:949:31: warning: 'ev' may be used uninitialized [-Wmaybe-uninitialized]
  949 |                 mc->bind_midi (channel, ev, detail);
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
../libs/surfaces/generic_midi/generic_midi_control_protocol.cc:854:25: note: 'ev' was declared here
  854 |         MIDI::eventType ev;
      |                         ^~
In file included from ../libs/surfaces/generic_midi/generic_midi_control_protocol.cc:65:
In member function 'void MIDIControllable::set_ctltype(CtlType)',
    inlined from 'MIDIControllable* GenericMidiControlProtocol::create_binding(const XMLNode&)' at ../libs/surfaces/generic_midi/generic_midi_control_protocol.cc:947:19:
../libs/surfaces/generic_midi/midicontrollable.h:91:51: warning: 'ctltype' may be used uninitialized [-Wmaybe-uninitialized]
   91 |         void set_ctltype (CtlType val) { _ctltype = val; }
      |                                          ~~~~~~~~~^~~~~
../libs/surfaces/generic_midi/generic_midi_control_protocol.cc: In member function 'MIDIControllable* GenericMidiControlProtocol::create_binding(const XMLNode&)':
../libs/surfaces/generic_midi/generic_midi_control_protocol.cc:857:35: note: 'ctltype' was declared here
  857 |         MIDIControllable::CtlType ctltype;
      |                                   ^~~~~~~

[1390/1835] Compiling libs/panners/1in2out/panner_1in2out.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/us2400/mcp_buttons.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1391/1835] Compiling libs/panners/vbap/vbap.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../libs/surfaces/mackie/gui.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1392/1835] Compiling libs/panners/vbap/vbap_speakers.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/surfaces/launchkey_4/launchkey_4.h:42,
                 from ../libs/surfaces/launchkey_4/launchkey_4_interface.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../libs/surfaces/launchkey_4/launchkey_4_interface.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1393/1835] Compiling libs/panners/stereobalance/panner_balance.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/surfaces/launchpad_x/lpx.h:41,
                 from ../libs/surfaces/launchpad_x/launchpad_x_interface.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../libs/surfaces/launchpad_x/launchpad_x_interface.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1394/1835] Compiling libs/backends/pulseaudio/pulseaudio_backend.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/surfaces/launchpad_pro/lppro.h:41,
                 from ../libs/surfaces/launchpad_pro/interface.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../libs/surfaces/launchpad_pro/interface.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1395/1835] Compiling libs/backends/jack/jack_utils.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/mackie/surface.cc:47:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/surfaces/mackie/surface.cc:51:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/glibmm-2.4/glibmm/exception.h:22,
                 from /usr/include/glibmm-2.4/glibmm/error.h:21,
                 from /usr/include/glibmm-2.4/glibmm/convert.h:24,
                 from ../libs/surfaces/mackie/surface.cc:31:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1396/1835] Compiling libs/backends/jack/jack_portengine.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../libs/surfaces/mackie/gui.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1397/1835] Compiling libs/backends/jack/jack_session.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/surfaces/push2/push2.h:41,
                 from ../libs/surfaces/push2/interface.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../libs/surfaces/push2/interface.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1398/1835] Compiling libs/backends/jack/jack_api.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/surfaces/push2/push2.h:41,
                 from ../libs/surfaces/push2/leds.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/abstract_ui.h:28,
                 from ../libs/surfaces/push2/push2.h:31:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1399/1835] Compiling libs/backends/jack/weak_libjack.c
[1400/1835] Compiling libs/backends/jack/jack_audiobackend.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../libs/surfaces/us2400/gui.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1401/1835] Compiling libs/backends/jack/jack_connection.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/surfaces/launch_control_xl/gui.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/surfaces/launch_control_xl/gui.cc:30:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1402/1835] Compiling libs/backends/alsa/alsa_audiobackend.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/us2400/strip.cc:43:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1403/1835] Compiling libs/backends/alsa/alsa_slave.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/launch_control_xl/leds.cc:40:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/surfaces/launch_control_xl/gui.h:26,
                 from ../libs/surfaces/launch_control_xl/leds.cc:45:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/abstract_ui.h:28,
                 from ../libs/surfaces/launch_control_xl/launch_control_xl.h:31,
                 from ../libs/surfaces/launch_control_xl/leds.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/surfaces/launch_control_xl/gui.h:28:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1404/1835] Compiling libs/backends/alsa/alsa_midi.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:30,
                 from ../libs/surfaces/contourdesign/button_config_widget.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/surfaces/contourdesign/button_config_widget.h:24,
                 from ../libs/surfaces/contourdesign/button_config_widget.cc:30:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1405/1835] Compiling libs/backends/alsa/zita-alsa-pcmi.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/cc121/cc121.cc:57:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1406/1835] Compiling libs/backends/alsa/alsa_rawmidi.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/surfaces/push2/canvas.h:25,
                 from ../libs/surfaces/push2/canvas.cc:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../libs/surfaces/push2/canvas.cc:26:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/surfaces/push2/canvas.cc: In member function 'int ArdourSurface::Push2Canvas::blit_to_device_sample_buffer()':
../libs/surfaces/push2/canvas.cc:210:42: warning: cast from 'const uint8_t*' {aka 'const unsigned char*'} to 'const uint32_t*' {aka 'const unsigned int*'} increases required alignment of target type [-Wcast-align]
  210 |                         const int r = (*((const uint32_t*)dp) >> 16) & 0xff;
      |                                          ^~~~~~~~~~~~~~~~~~~
../libs/surfaces/push2/canvas.cc:211:42: warning: cast from 'const uint8_t*' {aka 'const unsigned char*'} to 'const uint32_t*' {aka 'const unsigned int*'} increases required alignment of target type [-Wcast-align]
  211 |                         const int g = (*((const uint32_t*)dp) >> 8) & 0xff;
      |                                          ^~~~~~~~~~~~~~~~~~~
../libs/surfaces/push2/canvas.cc:212:41: warning: cast from 'const uint8_t*' {aka 'const unsigned char*'} to 'const uint32_t*' {aka 'const unsigned int*'} increases required alignment of target type [-Wcast-align]
  212 |                         const int b = *((const uint32_t*)dp) & 0xff;
      |                                         ^~~~~~~~~~~~~~~~~~~

[1407/1835] Compiling libs/backends/alsa/alsa_sequencer.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/container.h:23,
                 from ../libs/surfaces/push2/layout.h:28,
                 from ../libs/surfaces/push2/splash.h:24,
                 from ../libs/surfaces/push2/splash.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:6,
                 from ../libs/surfaces/push2/splash.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1408/1835] Compiling libs/backends/dummy/dummy_audiobackend.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/surfaces/launchpad_pro/gui.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/surfaces/launchpad_pro/gui.cc:29:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1409/1835] Compiling libs/plugins/reasonablesynth.lv2/lv2.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/surfaces/launchpad_x/gui.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/surfaces/launchpad_x/gui.cc:29:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1410/1835] Compiling libs/plugins/a-comp.lv2/a-comp.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/surfaces/console1/c1_gui.h:25,
                 from ../libs/surfaces/console1/c1_gui.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/surfaces/console1/c1_gui.h:26:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1411/1835] Compiling libs/plugins/a-exp.lv2/a-exp.c
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/surfaces/osc/osc.h:46,
                 from ../libs/surfaces/osc/osc_cue_observer.cc:27:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1412/1835] Compiling libs/plugins/a-delay.lv2/a-delay.c
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/surfaces/launchkey_4/gui.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/surfaces/launchkey_4/gui.cc:29:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/surfaces/push2/canvas.h:25,
                 from ../libs/surfaces/push2/layout.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/surfaces/push2/canvas.h:23:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1413/1835] Compiling libs/plugins/a-eq.lv2/a-eq.c
[1414/1835] Compiling libs/plugins/a-reverb.lv2/a-reverb.c
[1415/1835] Compiling libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc
[1416/1835] Compiling gtk2_ardour/editor_timefx.cc
../libs/backends/alsa/zita-alsa-pcmi.cc: In member function 'char* Alsa_pcmi::clear_16(char*, int)':
../libs/backends/alsa/zita-alsa-pcmi.cc:907:19: warning: cast from 'char*' to 'short int*' increases required alignment of target type [-Wcast-align]
  907 |                 *((short int*)dst) = 0;
      |                   ^~~~~~~~~~~~~~~
../libs/backends/alsa/zita-alsa-pcmi.cc: In member function 'char* Alsa_pcmi::clear_32(char*, int)':
../libs/backends/alsa/zita-alsa-pcmi.cc:929:19: warning: cast from 'char*' to 'int*' increases required alignment of target type [-Wcast-align]
  929 |                 *((int*)dst) = 0;
      |                   ^~~~~~~~~
../libs/backends/alsa/zita-alsa-pcmi.cc: In member function 'char* Alsa_pcmi::play_floatne(const float*, char*, int, int)':
../libs/backends/alsa/zita-alsa-pcmi.cc:1078:19: warning: cast from 'char*' to 'float*' increases required alignment of target type [-Wcast-align]
 1078 |                 *((float*)dst) = *src;
      |                   ^~~~~~~~~~~
../libs/backends/alsa/zita-alsa-pcmi.cc: In member function 'char* Alsa_pcmi::play_floatre(const float*, char*, int, int)':
../libs/backends/alsa/zita-alsa-pcmi.cc:1091:19: warning: cast from 'char*' to 'uint32_t*' {aka 'unsigned int*'} increases required alignment of target type [-Wcast-align]
 1091 |                 *((uint32_t*)dst) = bswap_32 (*s);
      |                   ^~~~~~~~~~~~~~
../libs/backends/alsa/zita-alsa-pcmi.cc: In member function 'const char* Alsa_pcmi::capt_floatne(const char*, float*, int, int)':
../libs/backends/alsa/zita-alsa-pcmi.cc:1201:26: warning: cast from 'const char*' to 'const float*' increases required alignment of target type [-Wcast-align]
 1201 |                 *dst = *((float const*)src);
      |                          ^~~~~~~~~~~~~~~~~
In file included from ../libs/backends/alsa/zita-alsa-pcmi.cc:26:
../libs/backends/alsa/zita-alsa-pcmi.cc: In member function 'const char* Alsa_pcmi::capt_floatre(const char*, float*, int, int)':
../libs/backends/alsa/zita-alsa-pcmi.cc:1214:34: warning: cast from 'const char*' to 'const uint32_t*' {aka 'const unsigned int*'} increases required alignment of target type [-Wcast-align]
 1214 |                 *d = bswap_32 (*((uint32_t const*)src));
      |                                  ^~~~~~~~~~~~~~~~~~~~

[1417/1835] Compiling gtk2_ardour/strip_silence_dialog.cc
[1418/1835] Compiling gtk2_ardour/region_fx_line.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/spinbutton.h:29,
                 from ../libs/surfaces/contourdesign/jump_distance_widget.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/spinbutton.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1419/1835] Compiling gtk2_ardour/note_player.cc
[1420/1835] Compiling gtk2_ardour/editing.cc
[1421/1835] Compiling gtk2_ardour/plugin_setup_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/launch_control_xl/controllers.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1422/1835] Compiling gtk2_ardour/editor_locations.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/surfaces/launchpad_x/gui.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/surfaces/launchpad_x/gui.cc:29:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1423/1835] Compiling gtk2_ardour/ui_config.cc
[1424/1835] Compiling gtk2_ardour/editor_canvas_events.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/console1/c1_operations.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../libs/surfaces/console1/c1_operations.cc: In member function 'void ArdourSurface::Console1::map_encoder(ControllerID, std::shared_ptr<ARDOUR::AutomationControl>)':
../libs/surfaces/console1/c1_operations.cc:1144:55: warning: 'gain' may be used uninitialized [-Wmaybe-uninitialized]
 1144 |                 get_encoder (controllerID)->set_value (gain);
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/surfaces/console1/c1_operations.cc:1135:16: note: 'gain' was declared here
 1135 |         double gain;
      |                ^~~~
../libs/surfaces/console1/c1_operations.cc: In member function 'void ArdourSurface::Console1::map_eq_freq(uint32_t)':
../libs/surfaces/console1/c1_operations.cc:919:25: warning: 'eq_freq_id' may be used uninitialized [-Wmaybe-uninitialized]
  919 |         if (map_encoder (controllerID)) {
      |             ~~~~~~~~~~~~^~~~~~~~~~~~~~
In file included from ../libs/surfaces/console1/c1_control.h:5,
                 from ../libs/surfaces/console1/c1_operations.cc:26:
../libs/surfaces/console1/console1.h:467:30: note: 'eq_freq_id' was declared here
  467 |                 ControllerID eq_freq_id;
      |                              ^~~~~~~~~~
../libs/surfaces/console1/c1_operations.cc: In member function 'void ArdourSurface::Console1::map_eq_gain(uint32_t)':
../libs/surfaces/console1/c1_operations.cc:932:25: warning: 'eq_gain_id' may be used uninitialized [-Wmaybe-uninitialized]
  932 |         if (map_encoder (controllerID)) {
      |             ~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/surfaces/console1/console1.h:487:30: note: 'eq_gain_id' was declared here
  487 |                 ControllerID eq_gain_id;
      |                              ^~~~~~~~~~

[1425/1835] Compiling gtk2_ardour/mini_timeline.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../libs/surfaces/console1/c1_plugin_operations.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1426/1835] Compiling gtk2_ardour/enums.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/mackie/surface.cc:47:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/surfaces/mackie/surface.cc:51:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/glibmm-2.4/glibmm/exception.h:22,
                 from /usr/include/glibmm-2.4/glibmm/error.h:21,
                 from /usr/include/glibmm-2.4/glibmm/convert.h:24,
                 from ../libs/surfaces/mackie/surface.cc:31:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1427/1835] Compiling gtk2_ardour/trigger_source_list.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/us2400/surface.cc:39:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/surfaces/us2400/surface.cc:42:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/glibmm-2.4/glibmm/exception.h:22,
                 from /usr/include/glibmm-2.4/glibmm/error.h:21,
                 from /usr/include/glibmm-2.4/glibmm/convert.h:24,
                 from ../libs/surfaces/us2400/surface.cc:26:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1428/1835] Compiling gtk2_ardour/fft_result.cc
[1429/1835] Compiling gtk2_ardour/streamview.cc
[1430/1835] Compiling gtk2_ardour/timers.cc
[1431/1835] Compiling gtk2_ardour/main_clock.cc
../libs/backends/alsa/alsa_slave.cc: In member function 'void* ARDOUR::AlsaAudioSlave::process_thread()':
../libs/backends/alsa/alsa_slave.cc:236:67: warning: 'vec.PBD::RingBuffer<float>::rw_vector::buf[1]' may be used uninitialized [-Wmaybe-uninitialized]
  236 |                                 PBD::RingBuffer<float>::rw_vector vec;
      |                                                                   ^~~

[1432/1835] Compiling gtk2_ardour/simple_export_dialog.cc
[1433/1835] Compiling gtk2_ardour/editor_route_groups.cc
[1434/1835] Compiling gtk2_ardour/search_path_option.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/text.h:30,
                 from ../libs/surfaces/push2/menu.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:6,
                 from ../libs/surfaces/push2/menu.cc:23:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../libs/surfaces/push2/canvas.h:25,
                 from ../libs/surfaces/push2/menu.cc:30:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:28:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/surfaces/push2/gui.h:27,
                 from ../libs/surfaces/push2/menu.cc:31:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1435/1835] Compiling gtk2_ardour/engine_dialog.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/surfaces/push2/gui.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../libs/surfaces/push2/gui.cc:29:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1436/1835] Compiling gtk2_ardour/transcode_video_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/contourdesign/interface.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1437/1835] Compiling gtk2_ardour/cursor_context.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/surfaces/push2/knob.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/automation_control.h:29,
                 from ../libs/surfaces/push2/knob.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1438/1835] Compiling gtk2_ardour/tempo_dialog.cc
[1439/1835] Compiling gtk2_ardour/region_layering_order_editor.cc
[1440/1835] Compiling gtk2_ardour/plugin_window_proxy.cc
[1441/1835] Compiling gtk2_ardour/normalize_dialog.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/surfaces/contourdesign/contourdesign_gui.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/adjustment.h:7,
                 from ../libs/surfaces/contourdesign/contourdesign_gui.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/object.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/adjustment.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../libs/surfaces/contourdesign/contourdesign_gui.cc:23:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1442/1835] Compiling gtk2_ardour/editor_cursors.cc
[1443/1835] Compiling gtk2_ardour/ardour_ui_engine.cc
[1444/1835] Compiling gtk2_ardour/missing_filesource_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/panners/2in2out/panner_2in2out.cc:49:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1445/1835] Compiling gtk2_ardour/transpose_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/panners/1in2out/panner_1in2out.cc:51:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1446/1835] Compiling gtk2_ardour/editor_snapshots.cc
In file included from /usr/include/c++/14.2.0/string:54,
                 from /usr/include/c++/14.2.0/bits/locale_classes.h:40,
                 from /usr/include/c++/14.2.0/bits/ios_base.h:41,
                 from /usr/include/c++/14.2.0/streambuf:43,
                 from /usr/include/c++/14.2.0/bits/streambuf_iterator.h:35,
                 from /usr/include/c++/14.2.0/iterator:66,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:25,
                 from /usr/include/glibmm-2.4/glibmm/exception.h:22,
                 from /usr/include/glibmm-2.4/glibmm/error.h:21,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/backends/alsa/alsa_rawmidi.cc:22:
In member function 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::pointer std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_data() const [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]',
    inlined from 'bool std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_is_local() const [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:269:13,
    inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::capacity() const [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:1182:20,
    inlined from 'void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_assign(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.tcc:283:41,
    inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::assign(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:1619:17,
    inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:819:21,
    inlined from 'ARDOUR::AlsaRawMidiIO::AlsaRawMidiIO(const std::string&, const char*, bool)' at ../libs/backends/alsa/alsa_rawmidi.cc:42:10:
/usr/include/c++/14.2.0/bits/basic_string.h:228:28: warning: '((const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)((char*)this + 24))[5].std::__cxx11::basic_string<char>::_M_dataplus.std::__cxx11::basic_string<char>::_Alloc_hider::_M_p' may be used uninitialized [-Wmaybe-uninitialized]
  228 |       { return _M_dataplus._M_p; }
      |                            ^~~~
In member function 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::capacity() const [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]',
    inlined from 'void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_assign(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.tcc:283:41,
    inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::assign(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:1619:17,
    inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:819:21,
    inlined from 'ARDOUR::AlsaRawMidiIO::AlsaRawMidiIO(const std::string&, const char*, bool)' at ../libs/backends/alsa/alsa_rawmidi.cc:42:10:
/usr/include/c++/14.2.0/bits/basic_string.h:1182:30: warning: '((const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)((char*)this + 24))[5].std::__cxx11::basic_string<char>::<anonymous>.std::__cxx11::basic_string<char>::<unnamed union>::_M_allocated_capacity' may be used uninitialized [-Wmaybe-uninitialized]
 1182 |         return _M_is_local() ? size_type(_S_local_capacity)
      |                ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                              : _M_allocated_capacity;
      |                              ~~~~~~~~~~~~~~~~~~~~~~~

[1447/1835] Compiling gtk2_ardour/session_option_editor.cc
In file included from /usr/include/c++/14.2.0/string:54,
                 from /usr/include/c++/14.2.0/bits/locale_classes.h:40,
                 from /usr/include/c++/14.2.0/bits/ios_base.h:41,
                 from /usr/include/c++/14.2.0/streambuf:43,
                 from /usr/include/c++/14.2.0/bits/streambuf_iterator.h:35,
                 from /usr/include/c++/14.2.0/iterator:66,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:25,
                 from /usr/include/glibmm-2.4/glibmm/exception.h:22,
                 from /usr/include/glibmm-2.4/glibmm/error.h:21,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/backends/alsa/alsa_sequencer.cc:21:
In member function 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::pointer std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_data() const [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]',
    inlined from 'bool std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_is_local() const [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:269:13,
    inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::capacity() const [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:1182:20,
    inlined from 'void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_assign(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.tcc:283:41,
    inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::assign(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:1619:17,
    inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:819:21,
    inlined from 'ARDOUR::AlsaSeqMidiIO::AlsaSeqMidiIO(const std::string&, const char*, bool)' at ../libs/backends/alsa/alsa_sequencer.cc:41:10:
/usr/include/c++/14.2.0/bits/basic_string.h:228:28: warning: '((const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)this)[6].std::__cxx11::basic_string<char>::_M_dataplus.std::__cxx11::basic_string<char>::_Alloc_hider::_M_p' may be used uninitialized [-Wmaybe-uninitialized]
  228 |       { return _M_dataplus._M_p; }
      |                            ^~~~
In member function 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::capacity() const [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]',
    inlined from 'void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_assign(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.tcc:283:41,
    inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::assign(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:1619:17,
    inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' at /usr/include/c++/14.2.0/bits/basic_string.h:819:21,
    inlined from 'ARDOUR::AlsaSeqMidiIO::AlsaSeqMidiIO(const std::string&, const char*, bool)' at ../libs/backends/alsa/alsa_sequencer.cc:41:10:
/usr/include/c++/14.2.0/bits/basic_string.h:1182:30: warning: '((const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)this)[6].std::__cxx11::basic_string<char>::<anonymous>.std::__cxx11::basic_string<char>::<unnamed union>::_M_allocated_capacity' may be used uninitialized [-Wmaybe-uninitialized]
 1182 |         return _M_is_local() ? size_type(_S_local_capacity)
      |                ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                              : _M_allocated_capacity;
      |                              ~~~~~~~~~~~~~~~~~~~~~~~

[1448/1835] Compiling gtk2_ardour/editor_keys.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/surfaces/faderport8/faderport8.cc:42:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1449/1835] Compiling gtk2_ardour/ghostregion.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/surfaces/faderport8/faderport8.cc:42:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1450/1835] Compiling gtk2_ardour/time_axis_view_item.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/panners/stereobalance/panner_balance.cc:48:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1451/1835] Compiling gtk2_ardour/playlist_selector.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../libs/surfaces/push2/level_meter.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/pbd/pbd/stateful.h:32,
                 from ../libs/pbd/pbd/statefuldestructible.h:23,
                 from ../libs/ardour/ardour/processor.h:29,
                 from ../libs/ardour/ardour/meter.h:31,
                 from ../libs/surfaces/push2/level_meter.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1452/1835] Compiling gtk2_ardour/ardour_ui2.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/surfaces/faderport8/faderport8.cc:42:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1453/1835] Compiling gtk2_ardour/selection_memento.cc
[1454/1835] Compiling gtk2_ardour/color_theme_manager.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/backends/jack/jack_session.cc:30:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../libs/backends/jack/jack_session.cc: In member function 'void ARDOUR::JACKSession::session_event(jack_session_event_t*)':
../libs/backends/jack/jack_session.cc:101:36: warning: 'int jack_session_reply(jack_client_t*, jack_session_event_t*)' is deprecated [-Wdeprecated-declarations]
  101 |                 jack_session_reply (jack_client, event);
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
In file included from ../libs/backends/jack/weak_libjack.h:198,
                 from ../libs/backends/jack/jack_session.h:22,
                 from ../libs/backends/jack/jack_session.cc:34:
/usr/include/jack/session.h:204:5: note: declared here
  204 | int jack_session_reply (jack_client_t        *client,
      |     ^~~~~~~~~~~~~~~~~~
../libs/backends/jack/jack_session.cc:108:33: warning: 'void jack_session_event_free(jack_session_event_t*)' is deprecated [-Wdeprecated-declarations]
  108 |         jack_session_event_free (event);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/jack/session.h:217:6: note: declared here
  217 | void jack_session_event_free (jack_session_event_t *event) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT;
      |      ^~~~~~~~~~~~~~~~~~~~~~~

[1455/1835] Compiling gtk2_ardour/dsp_stats_ui.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/surfaces/push2/scale.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1456/1835] Compiling gtk2_ardour/export_filename_selector.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/surfaces/osc/osc.h:46,
                 from ../libs/surfaces/osc/osc_gui.cc:43:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/surfaces/osc/osc_gui.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/glibmm-2.4/glibmm/pattern.h:26,
                 from ../libs/pbd/pbd/file_utils.h:27,
                 from ../libs/surfaces/osc/osc_gui.cc:27:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/spinbutton.h:29,
                 from ../libs/surfaces/osc/osc_gui.cc:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1457/1835] Compiling gtk2_ardour/selection_properties_box.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/mackie/mackie_control_protocol.cc:63:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1458/1835] Compiling gtk2_ardour/analysis_window.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/drawingarea.h:31,
                 from ../gtk2_ardour/fft_graph.h:27,
                 from ../gtk2_ardour/fft_result.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/color.h:9,
                 from ../gtk2_ardour/fft_result.h:26,
                 from ../gtk2_ardour/fft_result.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/color.h:35:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1459/1835] Compiling gtk2_ardour/stripable_colorpicker.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/scrolledwindow.h:31,
                 from ../gtk2_ardour/editor_locations.h:26,
                 from ../gtk2_ardour/editor_locations.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/xml++.h:44,
                 from ../gtk2_ardour/editor_locations.h:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/location_ui.h:30,
                 from ../gtk2_ardour/editor_locations.cc:21:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1460/1835] Compiling gtk2_ardour/template_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/osc/osc_global_observer.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1461/1835] Compiling gtk2_ardour/sys_ex.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/osc/osc_route_observer.cc:28:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1462/1835] Compiling gtk2_ardour/midi_region_properties_box.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/mackie/mackie_control_protocol.cc:63:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1463/1835] Compiling gtk2_ardour/route_group_menu.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/contourdesign/contourdesign.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1464/1835] Compiling gtk2_ardour/add_route_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/us2400/us2400_control_protocol.cc:56:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1465/1835] Compiling gtk2_ardour/editor_routes.cc
[1466/1835] Compiling gtk2_ardour/gui_object.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/push2/cues.cc:48:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/surfaces/push2/cues.cc:54:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:6,
                 from ../libs/surfaces/push2/cues.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:28:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1467/1835] Compiling gtk2_ardour/midi_region_view.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:30,
                 from ../gtk2_ardour/missing_filesource_dialog.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1468/1835] Compiling gtk2_ardour/lv2_plugin_ui.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/spinbutton.h:29,
                 from ../gtk2_ardour/transpose_dialog.h:22,
                 from ../gtk2_ardour/transpose_dialog.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/spinbutton.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1469/1835] Compiling gtk2_ardour/midi_list_editor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/launch_control_xl/launch_control_xl.cc:44:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/surfaces/launch_control_xl/launch_control_xl.cc:52:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/convert.h:29,
                 from ../libs/surfaces/launch_control_xl/launch_control_xl.cc:26:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/midi++2/midi++/parser.h:28,
                 from ../libs/surfaces/launch_control_xl/launch_control_xl.cc:33:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/surfaces/launch_control_xl/gui.h:28,
                 from ../libs/surfaces/launch_control_xl/launch_control_xl.cc:54:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1470/1835] Compiling gtk2_ardour/fitted_canvas_widget.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/normalize_dialog.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1471/1835] Compiling gtk2_ardour/midi_channel_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/push2/track_mix.cc:46:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/surfaces/push2/track_mix.cc:51:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:6,
                 from ../libs/surfaces/push2/track_mix.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:28:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1472/1835] Compiling gtk2_ardour/main.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/search_path_option.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1473/1835] Compiling gtk2_ardour/library_download_dialog.cc
[1474/1835] Compiling gtk2_ardour/midi_trigger_properties_box.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/push2/mix.cc:44:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/surfaces/push2/mix.cc:49:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:6,
                 from ../libs/surfaces/push2/mix.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/surfaces/push2/mix.cc:54:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:28:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1475/1835] Compiling gtk2_ardour/luadialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/push2/push2.cc:46:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/surfaces/push2/push2.cc:50:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/convert.h:29,
                 from ../libs/surfaces/push2/push2.cc:27:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/midi++2/midi++/parser.h:28,
                 from ../libs/surfaces/push2/push2.cc:34:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/surfaces/push2/gui.h:27,
                 from ../libs/surfaces/push2/push2.cc:57:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1476/1835] Compiling gtk2_ardour/export_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../gtk2_ardour/plugin_setup_dialog.h:22,
                 from ../gtk2_ardour/plugin_setup_dialog.cc:24:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:32,
                 from ../gtk2_ardour/plugin_setup_dialog.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/plugin_setup_dialog.cc:21:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1477/1835] Compiling gtk2_ardour/vst3_plugin_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/backends/jack/jack_audiobackend.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1478/1835] Compiling gtk2_ardour/route_list_base.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/trigger_source_list.cc:20:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:32,
                 from ../gtk2_ardour/region_list_base.h:28,
                 from ../gtk2_ardour/source_list_base.h:21,
                 from ../gtk2_ardour/trigger_source_list.h:21,
                 from ../gtk2_ardour/trigger_source_list.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/command.h:29,
                 from ../libs/temporal/temporal/domain_swap.h:24,
                 from ../libs/ardour/ardour/region.h:30,
                 from ../gtk2_ardour/trigger_source_list.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/region_list_base.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1479/1835] Compiling gtk2_ardour/keyboard.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/osc/osc_select_observer.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1480/1835] Compiling gtk2_ardour/ruler_dialog.cc
[1481/1835] Compiling gtk2_ardour/sfdb_freesound_mootcher.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/push2/buttons.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/container.h:23,
                 from ../libs/surfaces/push2/layout.h:28,
                 from ../libs/surfaces/push2/buttons.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/pbd/pbd/timing.h:22,
                 from ../libs/pbd/pbd/debug.h:31,
                 from ../libs/ardour/ardour/debug.h:31,
                 from ../libs/surfaces/push2/buttons.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1482/1835] Compiling gtk2_ardour/send_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/add_route_dialog.h:47,
                 from ../gtk2_ardour/enums.cc:27:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../gtk2_ardour/enums.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/add_route_dialog.h:31:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1483/1835] Compiling gtk2_ardour/ardour_ui_dependents.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/xfade_curve.h:24,
                 from ../gtk2_ardour/audio_region_view.h:37,
                 from ../gtk2_ardour/region_fx_line.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/automation_control.h:29,
                 from ../gtk2_ardour/region_fx_line.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/gui_thread.h:21,
                 from ../gtk2_ardour/region_fx_line.cc:22:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1484/1835] Compiling gtk2_ardour/editor_videotimeline.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/display.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/selectiondata.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treedragdest.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/liststore.h:29,
                 from ../gtk2_ardour/route_list_base.h:27,
                 from ../gtk2_ardour/editor_routes.h:22,
                 from ../gtk2_ardour/editor_routes.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/liststore.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeiter.h:34,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treemodel.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treedragdest.h:31:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/glibmm-2.4/glibmm/interface.h:20,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treedragdest.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/route_list_base.h:31:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1485/1835] Compiling gtk2_ardour/add_video_dialog.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/midi_channel_dialog.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1486/1835] Compiling gtk2_ardour/transport_control_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/console1/console1.cc:34:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/surfaces/console1/c1_gui.h:25,
                 from ../libs/surfaces/console1/console1.cc:42:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/abstract_ui.h:28,
                 from ../libs/pbd/pbd/abstract_ui.cc:28,
                 from ../libs/surfaces/console1/console1.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/surfaces/console1/c1_gui.h:26:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/surfaces/console1/console1.cc: In member function 'void ArdourSurface::Console1::master_monitor_has_changed()':
../libs/surfaces/console1/console1.cc:1211:14: warning: unused variable 'monitor_active' [-Wunused-variable]
 1211 |         bool monitor_active = session->monitor_active ();
      |              ^~~~~~~~~~~~~~

[1487/1835] Compiling gtk2_ardour/editor_summary.cc
[1488/1835] Compiling gtk2_ardour/route_processor_selection.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/main_clock.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../gtk2_ardour/actions.h:27,
                 from ../gtk2_ardour/main_clock.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/audioengine.h:38,
                 from ../gtk2_ardour/main_clock.cc:25:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/public_editor.h:61,
                 from ../gtk2_ardour/main_clock.cc:31:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1489/1835] Compiling gtk2_ardour/ardour_ui_session.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_timefx.cc:42:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/editor_timefx.cc:45:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/editor_timefx.cc:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1490/1835] Compiling gtk2_ardour/trigger_strip.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/strip_silence_dialog.cc:34:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/table.h:30,
                 from ../gtk2_ardour/strip_silence_dialog.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/table.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from /usr/include/glibmm-2.4/glibmm/sarray.h:25,
                 from /usr/include/glibmm-2.4/glibmm/containers.h:23,
                 from /usr/include/glibmm-2.4/glibmm/helperlist.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/table.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/strip_silence_dialog.cc:27:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1491/1835] Compiling gtk2_ardour/processor_selection.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/editor.h:72,
                 from ../gtk2_ardour/cursor_context.cc:21:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/editor.h:48:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/cursor_context.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1492/1835] Compiling gtk2_ardour/port_matrix_row_labels.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_snapshots.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/display.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/selectiondata.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treedragdest.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/liststore.h:29,
                 from ../gtk2_ardour/editor_snapshots.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../gtk2_ardour/editor_snapshots.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeiter.h:34,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treemodel.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treedragdest.h:31:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../gtk2_ardour/editor_snapshots.cc:27:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/choice.h:27,
                 from ../gtk2_ardour/editor_snapshots.cc:36:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1493/1835] Compiling gtk2_ardour/processor_box.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/filechooserdialog.h:31,
                 from ../gtk2_ardour/template_dialog.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/glib/gprintf.h:23,
                 from /usr/include/glib-2.0/glib/gstdio.h:24,
                 from ../gtk2_ardour/template_dialog.cc:25:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/template_dialog.cc:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1494/1835] Compiling gtk2_ardour/io_button.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/launchpad_x/lpx.cc:50:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/surfaces/launchpad_x/lpx.cc:56:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/convert.h:29,
                 from ../libs/surfaces/launchpad_x/lpx.cc:30:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/midi++2/midi++/parser.h:28,
                 from ../libs/surfaces/launchpad_x/lpx.cc:37:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/surfaces/launchpad_x/gui.h:27,
                 from ../libs/surfaces/launchpad_x/lpx.cc:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1495/1835] Linking build/libs/LV2/reasonablesynth.lv2/reasonablesynth.so
[1496/1835] Linking build/libs/LV2/a-comp.lv2/a-comp.so
[1497/1835] Linking build/libs/LV2/a-exp.lv2/a-exp.so
[1498/1835] Linking build/libs/LV2/a-delay.lv2/a-delay.so
[1499/1835] Linking build/libs/LV2/a-reverb.lv2/a-reverb.so
[1500/1835] Compiling gtk2_ardour/step_editor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/ardour_ui_engine.cc:44:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/ardour_message.h:22,
                 from ../gtk2_ardour/ardour_ui_engine.cc:43:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/audioengine.h:38,
                 from ../gtk2_ardour/ardour_ui_engine.cc:41:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1501/1835] Compiling gtk2_ardour/export_analysis_graphs.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plug_insert_base.h:29,
                 from ../gtk2_ardour/plugin_window_proxy.cc:19:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/gui_thread.h:21,
                 from ../gtk2_ardour/plugin_window_proxy.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/destructible.h:22,
                 from ../libs/ardour/ardour/plug_insert_base.h:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../gtk2_ardour/plugin_ui.h:44,
                 from ../gtk2_ardour/plugin_window_proxy.cc:23:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1502/1835] Compiling gtk2_ardour/trigger_jump_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_group_menu.cc:27:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:31,
                 from ../gtk2_ardour/route_group_menu.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/route_group_menu.cc:22:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1503/1835] Compiling gtk2_ardour/editor_markers.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/tempo_dialog.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1504/1835] Compiling gtk2_ardour/vst3_x11_plugin_ui.cc
[1505/1835] Compiling gtk2_ardour/route_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/launchpad_x/lpx.cc:50:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/surfaces/launchpad_x/lpx.cc:56:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/convert.h:29,
                 from ../libs/surfaces/launchpad_x/lpx.cc:30:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/midi++2/midi++/parser.h:28,
                 from ../libs/surfaces/launchpad_x/lpx.cc:37:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/surfaces/launchpad_x/gui.h:27,
                 from ../libs/surfaces/launchpad_x/lpx.cc:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1506/1835] Linking build/libs/LV2/a-eq.lv2/a-eq.so
[1507/1835] Compiling gtk2_ardour/port_group.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/osc/osc.cc:48:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1508/1835] Compiling gtk2_ardour/triggerbox_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/keyboard.h:32,
                 from ../gtk2_ardour/region_layering_order_editor.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/table.h:30,
                 from ../gtk2_ardour/region_layering_order_editor.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/table.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from /usr/include/glibmm-2.4/glibmm/sarray.h:25,
                 from /usr/include/glibmm-2.4/glibmm/containers.h:23,
                 from /usr/include/glibmm-2.4/glibmm/helperlist.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/table.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/region_layering_order_editor.cc:23:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1509/1835] Linking build/libs/LV2/a-fluidsynth.lv2/a-fluidsynth.so
[1510/1835] Compiling gtk2_ardour/trigger_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_keys.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:34,
                 from ../gtk2_ardour/editor_keys.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:33:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1511/1835] Compiling gtk2_ardour/multi_region_properties_box.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../gtk2_ardour/fitted_canvas_widget.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:6,
                 from ../gtk2_ardour/fitted_canvas_widget.cc:23:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:28:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/fitted_canvas_widget.cc:28:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1512/1835] Compiling gtk2_ardour/mixer_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/selection_memento.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/public_editor.h:41:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/pbd/pbd/stateful.h:32,
                 from ../libs/pbd/pbd/statefuldestructible.h:23,
                 from ../gtk2_ardour/selection_memento.h:22,
                 from ../gtk2_ardour/selection_memento.cc:20:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/public_editor.h:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1513/1835] Compiling gtk2_ardour/grid_lines.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/ruler_dialog.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1514/1835] Compiling gtk2_ardour/port_insert_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/editor.h:72,
                 from ../gtk2_ardour/editor_canvas_events.cc:42:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../gtk2_ardour/editor_canvas_events.cc:38:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/ardour/ardour/types.h:54,
                 from ../libs/ardour/ardour/interthread_info.h:25,
                 from ../libs/ardour/ardour/audio_track.h:25,
                 from ../gtk2_ardour/editor_canvas_events.cc:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/editor.h:48:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/export_handler.h:36,
                 from ../libs/ardour/ardour/export_profile_manager.h:38,
                 from ../gtk2_ardour/export_filename_selector.h:37,
                 from ../gtk2_ardour/export_filename_selector.cc:30:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/filechooserdialog.h:31,
                 from ../gtk2_ardour/export_filename_selector.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/filechooserdialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/export_filename_selector.cc:24:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1515/1835] Compiling gtk2_ardour/editor_rulers.cc
[1516/1835] Compiling gtk2_ardour/sfdb_ui.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/color_theme_manager.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1517/1835] Compiling gtk2_ardour/global_port_matrix.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/stripable_colorpicker.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../gtk2_ardour/stripable_colorpicker.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/public_editor.h:41:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/public_editor.h:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1518/1835] Compiling gtk2_ardour/audio_time_axis.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/route_time_axis.h:46,
                 from ../gtk2_ardour/midi_streamview.h:33,
                 from ../gtk2_ardour/ghostregion.cc:40:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/container.h:23,
                 from ../gtk2_ardour/ghostregion.cc:31:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/evoral/evoral/Note.h:26,
                 from ../gtk2_ardour/ghostregion.cc:27:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/widgets/widgets/ardour_button.h:26,
                 from ../gtk2_ardour/automation_time_axis.h:40,
                 from ../gtk2_ardour/ghostregion.cc:38:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/ardour/ardour/types.h:54,
                 from ../libs/ardour/ardour/parameter_descriptor.h:24,
                 from ../gtk2_ardour/ghostregion.cc:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/time_axis_view.h:39,
                 from ../gtk2_ardour/automation_time_axis.h:44:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1519/1835] Compiling gtk2_ardour/export_preset_selector.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/gui_thread.h:21,
                 from ../gtk2_ardour/library_download_dialog.cc:33:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/glib/gprintf.h:23,
                 from /usr/include/glib-2.0/glib/gstdio.h:24,
                 from ../gtk2_ardour/library_download_dialog.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/file_archive.h:27,
                 from ../libs/pbd/pbd/inflater.h:24,
                 from ../gtk2_ardour/library_download_dialog.cc:25:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/library_download_dialog.h:26,
                 from ../gtk2_ardour/library_download_dialog.cc:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1520/1835] Compiling gtk2_ardour/group_tabs.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/time_axis_view_item.cc:46:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/time_axis_view_item.cc:35:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/time_axis_view_item.cc:30:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1521/1835] Compiling gtk2_ardour/meter_patterns.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/surfaces/launchpad_pro/lppro.cc:50:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/surfaces/launchpad_pro/lppro.cc:56:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/convert.h:29,
                 from ../libs/surfaces/launchpad_pro/lppro.cc:30:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/midi++2/midi++/parser.h:28,
                 from ../libs/surfaces/launchpad_pro/lppro.cc:37:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/surfaces/launchpad_pro/gui.h:27,
                 from ../libs/surfaces/launchpad_pro/lppro.cc:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1522/1835] Compiling gtk2_ardour/region_selection.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/editor.h:72,
                 from ../gtk2_ardour/editor_cursors.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../gtk2_ardour/editor_cursors.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/editor.h:48:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1523/1835] Compiling gtk2_ardour/big_clock_window.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/editor.h:72,
                 from ../gtk2_ardour/sys_ex.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../libs/canvas/canvas/flag.h:27,
                 from ../gtk2_ardour/sys_ex.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:8,
                 from ../libs/canvas/canvas/flag.h:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../gtk2_ardour/sys_ex.cc:23:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/editor.h:48:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1524/1835] Compiling gtk2_ardour/plugin_manager_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/analysis_window.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../gtk2_ardour/analysis_window.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/analysis_window.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1525/1835] Compiling gtk2_ardour/ardour_ui3.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/dsp_stats_ui.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:32,
                 from ../gtk2_ardour/dsp_stats_ui.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/dsp_stats_ui.cc:21:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1526/1835] Compiling gtk2_ardour/editor_tempodisplay.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../gtk2_ardour/port_matrix_row_labels.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/mini_timeline.cc:21:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../gtk2_ardour/mini_timeline.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/audioengine.h:38,
                 from ../gtk2_ardour/mini_timeline.cc:20:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/mini_timeline.cc:25:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/mini_timeline.cc:27:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1527/1835] Compiling gtk2_ardour/clock_group.cc
[1528/1835] Compiling gtk2_ardour/editor_audio_import.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_route_groups.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/editor_route_groups.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1529/1835] Compiling gtk2_ardour/piano_roll_header.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/surfaces/launchkey_4/launchkey_4.cc:51:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../libs/surfaces/launchkey_4/launchkey_4.cc:60:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/convert.h:29,
                 from ../libs/surfaces/launchkey_4/launchkey_4.cc:30:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/midi++2/midi++/parser.h:28,
                 from ../libs/surfaces/launchkey_4/launchkey_4.cc:37:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/surfaces/launchkey_4/gui.h:27,
                 from ../libs/surfaces/launchkey_4/launchkey_4.cc:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1530/1835] Compiling gtk2_ardour/audio_region_operations_box.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/selection_properties_box.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/selection_properties_box.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/selection_properties_box.cc:24:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1531/1835] Compiling gtk2_ardour/midi_channel_selector.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/route_time_axis.h:46,
                 from ../gtk2_ardour/streamview.cc:46:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../gtk2_ardour/streamview.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1532/1835] Compiling gtk2_ardour/region_list_base.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/transcode_video_dialog.cc:38:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/filechooserdialog.h:31,
                 from ../gtk2_ardour/transcode_video_dialog.cc:32:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/filechooserdialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/transcode_video_dialog.cc:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1533/1835] Compiling gtk2_ardour/plugin_display.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/export_handler.h:36,
                 from ../libs/ardour/ardour/export_profile_manager.h:38,
                 from ../gtk2_ardour/simple_export_dialog.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/simple_export_dialog.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/simple_export_dialog.cc:20:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1534/1835] Compiling gtk2_ardour/configinfo.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/midi_region_properties_box.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../gtk2_ardour/midi_region_properties_box.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/midi_region_properties_box.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1535/1835] Compiling gtk2_ardour/fft.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/ardour_ui2.cc:57:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:31,
                 from ../gtk2_ardour/ardour_ui2.cc:40:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/ardour_ui2.cc:52:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1536/1835] Compiling gtk2_ardour/editor_group_tabs.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/main.cc:64:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/toolitem.h:34,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/toolbar.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/settings.h:32,
                 from ../gtk2_ardour/main.cc:36:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/settings.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/main.cc:58:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1537/1835] Compiling gtk2_ardour/marker.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/midi_trigger_properties_box.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../gtk2_ardour/midi_trigger_properties_box.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/midi_trigger_properties_box.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1538/1835] Compiling gtk2_ardour/actions.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/trigger_jump_dialog.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1539/1835] Compiling gtk2_ardour/mouse_cursors.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/send_ui.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/gui_thread.h:21,
                 from ../gtk2_ardour/send_ui.cc:31:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/tk/ydk/ydk/gdk/gdktypes.h:36,
                 from ../libs/tk/ydk/ydk/gdk/gdkcolor.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkevents.h:34,
                 from ../libs/gtkmm2ext/gtkmm2ext/doi.h:28,
                 from ../gtk2_ardour/send_ui.cc:23:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/pango-1.0/pango/pango-coverage.h:25,
                 from /usr/include/pango-1.0/pango/pango-font.h:25,
                 from /usr/include/pango-1.0/pango/pango-attributes.h:25,
                 from /usr/include/pango-1.0/pango/pango.h:25,
                 from ../libs/tk/ydk/ydk/gdk/gdktypes.h:37:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/widgets/widgets/focus_entry.h:23,
                 from ../gtk2_ardour/gain_meter.h:50,
                 from ../gtk2_ardour/send_ui.h:28,
                 from ../gtk2_ardour/send_ui.cc:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1540/1835] Compiling gtk2_ardour/progress_reporter.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/instrument_selector.h:31,
                 from ../gtk2_ardour/sfdb_ui.h:58,
                 from ../gtk2_ardour/sfdb_freesound_mootcher.h:49,
                 from ../gtk2_ardour/sfdb_freesound_mootcher.cc:63:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/widgets/widgets/prompter.h:24,
                 from ../gtk2_ardour/sfdb_freesound_mootcher.cc:59:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../gtk2_ardour/sfdb_freesound_mootcher.cc:47:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/sfdb_freesound_mootcher.cc:50:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/widgets/widgets/prompter.h:26:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../gtk2_ardour/ardour_http.h:22,
                 from ../gtk2_ardour/sfdb_freesound_mootcher.cc:62:
../gtk2_ardour/sfdb_freesound_mootcher.cc: In member function 'bool Mootcher::fetchAudioFile(std::string, std::string, std::string, SoundFileBrowser*, std::string&)':
../gtk2_ardour/sfdb_freesound_mootcher.cc:550:33: warning: 'CURLOPT_PROGRESSFUNCTION' is deprecated: since 7.32.0. Use CURLOPT_XFERINFOFUNCTION [-Wdeprecated-declarations]
  550 |         curl_easy_setopt (curl, CURLOPT_PROGRESSFUNCTION, progress_callback);
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:1304:3: note: declared here
 1304 |   CURLOPTDEPRECATED(CURLOPT_PROGRESSFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 56,
      |   ^~~~~~~~~~~~~~~~~

[1541/1835] Compiling gtk2_ardour/ardour_ui_mixer.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/session_playlist.h:24,
                 from ../gtk2_ardour/playlist_selector.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/button.h:32,
                 from ../gtk2_ardour/playlist_selector.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/button.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/playlist_selector.cc:24:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/ardour/ardour/midi_playlist.h:38,
                 from ../gtk2_ardour/playlist_selector.cc:30:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[1542/1835] Compiling gtk2_ardour/interthread_progress_window.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/midi_list_editor.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/cellrenderer.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/cellrenderertext.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/cellrenderercombo.h:31,
                 from ../gtk2_ardour/midi_list_editor.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/cellrenderercombo.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/object.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/cellrenderer.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/midi_list_editor.h:27,
                 from ../gtk2_ardour/midi_list_editor.cc:39:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1543/1835] Compiling gtk2_ardour/editor_selection.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/lv2_plugin.h:34,
                 from ../gtk2_ardour/lv2_plugin_ui.cc:28:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/lv2_plugin_ui.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1544/1835] Compiling gtk2_ardour/missing_file_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/session_option_editor.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../gtk2_ardour/actions.h:27,
                 from ../gtk2_ardour/session_option_editor.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/configuration.h:28,
                 from ../gtk2_ardour/session_option_editor.cc:23:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/option_editor.h:29,
                 from ../gtk2_ardour/session_option_editor.h:24,
                 from ../gtk2_ardour/session_option_editor.cc:30:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1545/1835] Compiling gtk2_ardour/nsmclient.cc
[1546/1835] Compiling gtk2_ardour/ardour_ui_keys.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/editor_videotimeline.cc:28:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/ardour_ui.h:52:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/glib/gprintf.h:23,
                 from /usr/include/glib-2.0/glib/gstdio.h:24,
                 from ../libs/pbd/pbd/gstdio_compat.h:29,
                 from ../gtk2_ardour/editor_videotimeline.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/ardour/ardour/types.h:54,
                 from ../libs/ardour/ardour/rc_configuration.h:30,
                 from ../gtk2_ardour/editor_videotimeline.cc:24:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1547/1835] Compiling gtk2_ardour/audio_trigger_properties_box.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plug_insert_base.h:29,
                 from ../gtk2_ardour/vst3_plugin_ui.cc:21:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/vst3_plugin_ui.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/refptr.h:21,
                 from /usr/include/glibmm-2.4/glibmm/main.h:21,
                 from ../gtk2_ardour/vst3_plugin_ui.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/iochannel.h:25,
                 from /usr/include/glibmm-2.4/glibmm/main.h:24:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../gtk2_ardour/plugin_ui.h:44,
                 from ../gtk2_ardour/vst3_plugin_ui.h:24,
                 from ../gtk2_ardour/vst3_plugin_ui.cc:29:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1548/1835] Compiling gtk2_ardour/axis_view.cc
[1549/1835] Compiling gtk2_ardour/plugin_dspload_ui.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/export_analysis_graphs.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/ardour/ardour/types.h:54,
                 from ../libs/ardour/ardour/export_analysis.h:29,
                 from ../libs/audiographer/audiographer/general/analyser.h:24,
                 from ../gtk2_ardour/export_analysis_graphs.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1550/1835] Compiling gtk2_ardour/region_view.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/luadialog.cc:35:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../gtk2_ardour/luadialog.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1551/1835] Compiling gtk2_ardour/editor_component.cc
[1552/1835] Compiling gtk2_ardour/monitor_section.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/keyboard.cc:34:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/ardour_ui.h:52:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/convert.h:29,
                 from ../gtk2_ardour/keyboard.cc:26:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/keyboard.cc:27:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1553/1835] Compiling gtk2_ardour/export_video_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/add_video_dialog.cc:37:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/add_video_dialog.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/add_video_dialog.cc:28:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../gtk2_ardour/vst3_x11_plugin_ui.cc:27:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/socket.h:29,
                 from ../gtk2_ardour/vst3_x11_plugin_ui.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/socket.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../gtk2_ardour/plugin_ui.h:44,
                 from ../gtk2_ardour/vst3_plugin_ui.h:24,
                 from ../gtk2_ardour/vst3_x11_plugin_ui.h:27,
                 from ../gtk2_ardour/vst3_x11_plugin_ui.cc:32:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1554/1835] Compiling gtk2_ardour/plugin_selector.cc
[1555/1835] Compiling gtk2_ardour/surround_strip.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_manager.h:39,
                 from ../gtk2_ardour/add_route_dialog.cc:42:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/add_route_dialog.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1556/1835] Compiling gtk2_ardour/mergeable_line.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_summary.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:31,
                 from ../gtk2_ardour/editor_summary.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/session.h:52:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/editor.h:48,
                 from ../gtk2_ardour/editor_summary.cc:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1557/1835] Compiling gtk2_ardour/panner_ui.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../gtk2_ardour/audio_clock.h:34,
                 from ../gtk2_ardour/clock_group.h:26,
                 from ../gtk2_ardour/clock_group.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/attrlist.h:6,
                 from /usr/include/pangomm-1.4/pangomm.h:70,
                 from ../gtk2_ardour/audio_clock.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/language.h:29,
                 from /usr/include/pangomm-1.4/pangomm/attributes.h:28,
                 from /usr/include/pangomm-1.4/pangomm/attrlist.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1558/1835] Compiling gtk2_ardour/midi_streamview.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/configinfo.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/configinfo.cc:21:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1559/1835] Compiling gtk2_ardour/save_template_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_processor_selection.cc:27:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/gui_thread.h:21,
                 from ../gtk2_ardour/route_processor_selection.cc:31:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/route_processor_selection.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h:25,
                 from ../libs/widgets/widgets/ardour_ctrl_base.h:32,
                 from ../libs/widgets/widgets/ardour_knob.h:23,
                 from ../gtk2_ardour/mixer_strip.h:53,
                 from ../gtk2_ardour/route_processor_selection.cc:32:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1560/1835] Compiling gtk2_ardour/panner2d.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/transport_control_ui.cc:27:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/sizegroup.h:32,
                 from ../gtk2_ardour/transport_control_ui.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/sizegroup.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/sizegroup.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1561/1835] Compiling gtk2_ardour/option_editor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/mixer_ui.h:48,
                 from ../gtk2_ardour/trigger_strip.cc:39:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/trigger_strip.cc:33:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/ardour/ardour/types.h:54,
                 from ../libs/ardour/ardour/interthread_info.h:25,
                 from ../libs/ardour/ardour/audio_track.h:25,
                 from ../gtk2_ardour/trigger_strip.cc:25:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1562/1835] Compiling gtk2_ardour/floating_text_entry.cc
[1563/1835] Compiling gtk2_ardour/automation_time_axis.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_manager.h:39,
                 from ../gtk2_ardour/ardour_ui_session.cc:55:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/progressbar.h:31,
                 from ../gtk2_ardour/ardour_ui_session.cc:41:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/glibmm-2.4/glibmm/exception.h:22,
                 from /usr/include/glibmm-2.4/glibmm/error.h:21,
                 from ../gtk2_ardour/ardour_ui_session.cc:39:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/ardour_ui_session.cc:42:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1564/1835] Compiling gtk2_ardour/port_matrix_grid.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/export_handler.h:36,
                 from ../gtk2_ardour/export_dialog.cc:42:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/export_dialog.cc:31:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/export_dialog.cc:32:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1565/1835] Compiling gtk2_ardour/save_as_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/ardour_ui_dependents.cc:37:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/bindings.h:30,
                 from ../gtk2_ardour/ardour_ui_dependents.cc:40:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/ardour_ui_dependents.cc:35:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65,
                 from ../gtk2_ardour/ardour_ui_dependents.cc:44:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1566/1835] Compiling gtk2_ardour/utils_videotl.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/global_port_matrix.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../gtk2_ardour/global_port_matrix.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1567/1835] Compiling gtk2_ardour/region_peak_cursor.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixmap.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/bitmap.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/cursor.h:31,
                 from ../gtk2_ardour/mouse_cursors.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/cursor.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../gtk2_ardour/utils.h:40,
                 from ../gtk2_ardour/mouse_cursors.cc:25:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1568/1835] Compiling gtk2_ardour/editor_sections.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/midi_time_axis.h:43,
                 from ../gtk2_ardour/midi_region_view.h:39,
                 from ../gtk2_ardour/step_editor.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/gui_thread.h:21,
                 from ../gtk2_ardour/step_editor.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/ardour/ardour/midi_channel_filter.h:25,
                 from ../libs/ardour/ardour/midi_track.h:25,
                 from ../gtk2_ardour/step_editor.cc:23:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/ardour/ardour/midi_channel_filter.h:27:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/time_axis_view.h:39,
                 from ../gtk2_ardour/automation_time_axis.h:44,
                 from ../gtk2_ardour/stripable_time_axis.h:22,
                 from ../gtk2_ardour/route_time_axis.h:48,
                 from ../gtk2_ardour/midi_time_axis.h:45:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1569/1835] Compiling gtk2_ardour/loudness_settings.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/engine_dialog.cc:57:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../gtk2_ardour/engine_dialog.cc:38:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/engine_dialog.cc:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/engine_dialog.cc:40:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_list_base.cc:38:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:34,
                 from ../libs/gtkmm2ext/gtkmm2ext/treeutils.h:22,
                 from ../gtk2_ardour/route_list_base.cc:44:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/ardour/ardour/types.h:54,
                 from ../libs/ardour/ardour/interthread_info.h:25,
                 from ../libs/ardour/ardour/audio_track.h:25,
                 from ../gtk2_ardour/route_list_base.cc:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1570/1835] Compiling gtk2_ardour/idleometer.cc
[1571/1835] Compiling gtk2_ardour/export_report.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/plugin_display.h:24,
                 from ../gtk2_ardour/plugin_display.cc:28:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../gtk2_ardour/plugin_display.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/plugin_display.cc:24:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1572/1835] Compiling gtk2_ardour/audio_clock.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtkaccelgroup.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaccelmap.h:28,
                 from ../gtk2_ardour/actions.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkuimanager.h:39,
                 from ../gtk2_ardour/actions.cc:30:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/uimanager.h:29,
                 from ../gtk2_ardour/actions.cc:34:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1573/1835] Compiling gtk2_ardour/splash.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/interthread_progress_window.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/refptr.h:21,
                 from /usr/include/glibmm-2.4/glibmm/main.h:21,
                 from ../gtk2_ardour/interthread_progress_window.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/iochannel.h:25,
                 from /usr/include/glibmm-2.4/glibmm/main.h:24:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1574/1835] Compiling gtk2_ardour/bundle_manager.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plug_insert_base.h:29,
                 from ../gtk2_ardour/plugin_dspload_ui.h:30,
                 from ../gtk2_ardour/plugin_dspload_ui.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/plugin_dspload_ui.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:8,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1575/1835] Compiling gtk2_ardour/midi_export_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/io_plug.h:31,
                 from ../gtk2_ardour/io_button.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu_elems.h:23,
                 from ../libs/gtkmm2ext/gtkmm2ext/menu_elems.h:24,
                 from ../gtk2_ardour/io_button.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/xml++.h:44,
                 from ../libs/ardour/ardour/async_midi_port.h:28,
                 from ../gtk2_ardour/io_button.cc:20:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/iochannel.h:25,
                 from /usr/include/glibmm-2.4/glibmm/main.h:24,
                 from ../libs/pbd/pbd/crossthread.h:27,
                 from ../libs/ardour/ardour/async_midi_port.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/io_button.cc:30:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1576/1835] Compiling gtk2_ardour/slot_properties_box.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/midi_region_view.cc:51:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../gtk2_ardour/midi_region_view.cc:32:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/ardour/ardour/midi_playlist.h:38,
                 from ../gtk2_ardour/midi_region_view.cc:45:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[1577/1835] Compiling gtk2_ardour/varispeed_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_markers.cc:35:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../gtk2_ardour/editor_markers.cc:31:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/widgets/widgets/prompter.h:26,
                 from ../gtk2_ardour/editor_markers.cc:44:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1578/1835] Compiling gtk2_ardour/region_gain_line.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/grid_lines.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../gtk2_ardour/grid_lines.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/public_editor.h:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1579/1835] Compiling gtk2_ardour/video_timeline.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/export_handler.h:36,
                 from ../libs/ardour/ardour/export_profile_manager.h:38,
                 from ../gtk2_ardour/export_preset_selector.h:33,
                 from ../gtk2_ardour/export_preset_selector.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/export_preset_selector.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1580/1835] Compiling gtk2_ardour/note_select_dialog.cc
[1581/1835] Compiling gtk2_ardour/pianokeyboard.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/port_insert_ui.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/port_insert_ui.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from ../gtk2_ardour/port_insert_ui.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/port_insert_ui.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1582/1835] Compiling gtk2_ardour/audio_clip_editor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/multi_region_properties_box.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/multi_region_properties_box.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/multi_region_properties_box.cc:24:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1583/1835] Compiling gtk2_ardour/export_channel_selector.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/button.h:32,
                 from ../gtk2_ardour/idleometer.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../gtk2_ardour/idleometer.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1584/1835] Compiling gtk2_ardour/transport_masters_dialog.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/separator.h:31,
                 from ../gtk2_ardour/midi_channel_selector.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/separator.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/midi_channel_selector.cc:37:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1585/1835] Compiling gtk2_ardour/ardour_ui_dialogs.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/drawingarea.h:31,
                 from ../gtk2_ardour/meter_patterns.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/drawingarea.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/meter_patterns.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1586/1835] Compiling gtk2_ardour/utils.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/missing_file_dialog.cc:28:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/missing_file_dialog.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/strsplit.h:24,
                 from ../gtk2_ardour/missing_file_dialog.cc:25:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/ardour/ardour/session.h:52:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1587/1835] Compiling gtk2_ardour/session_metadata_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/save_template_dialog.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/save_template_dialog.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/save_template_dialog.cc:23:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1588/1835] Compiling gtk2_ardour/window_manager.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/big_clock_window.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/big_clock_window.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:8,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1589/1835] Compiling gtk2_ardour/led.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/midi_time_axis.h:43,
                 from ../gtk2_ardour/midi_region_view.h:39,
                 from ../gtk2_ardour/region_selection.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/gui_thread.h:21,
                 from ../gtk2_ardour/region_selection.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/command.h:29,
                 from ../libs/temporal/temporal/domain_swap.h:24,
                 from ../libs/ardour/ardour/region.h:30,
                 from ../gtk2_ardour/region_selection.cc:26:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/time_axis_view.h:39,
                 from ../gtk2_ardour/automation_time_axis.h:44,
                 from ../gtk2_ardour/stripable_time_axis.h:22,
                 from ../gtk2_ardour/route_time_axis.h:48,
                 from ../gtk2_ardour/midi_time_axis.h:45:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1590/1835] Compiling gtk2_ardour/timectl_gui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/ardour_ui3.cc:40:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../gtk2_ardour/actions.h:27,
                 from ../gtk2_ardour/ardour_ui3.cc:43:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/ardour/ardour/monitor_processor.h:30,
                 from ../gtk2_ardour/ardour_ui3.cc:39:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65,
                 from ../gtk2_ardour/ardour_ui3.cc:44:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1591/1835] Compiling gtk2_ardour/editor_sources.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/editor.h:72,
                 from ../gtk2_ardour/editor_group_tabs.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../gtk2_ardour/editor_group_tabs.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/controllable.h:31,
                 from ../libs/ardour/ardour/route_group.h:32,
                 from ../gtk2_ardour/editor_group_tabs.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/editor.h:48:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1592/1835] Compiling gtk2_ardour/stereo_panner.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/audio_time_axis.h:40,
                 from ../gtk2_ardour/audio_time_axis.cc:53:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../gtk2_ardour/audio_time_axis.cc:42:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/audio_time_axis.cc:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../gtk2_ardour/audio_time_axis.cc:43:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/audio_time_axis.cc:44:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1593/1835] Compiling gtk2_ardour/mixer_group_tabs.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/triggerbox_ui.cc:48:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/sizegroup.h:32,
                 from ../gtk2_ardour/triggerbox_ui.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/sizegroup.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/sizegroup.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/triggerbox_ui.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1594/1835] Compiling gtk2_ardour/cuebox_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/audio_region_operations_box.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/audio_region_operations_box.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/audio_region_operations_box.cc:24:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1595/1835] Compiling gtk2_ardour/io_plugin_window.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/note_select_dialog.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1596/1835] Compiling gtk2_ardour/trigger_region_list.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/save_as_dialog.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/save_as_dialog.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1597/1835] Compiling gtk2_ardour/mono_panner.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/eventbox.h:31,
                 from ../libs/gtkmm2ext/gtkmm2ext/cairo_widget.h:26,
                 from ../gtk2_ardour/led.h:26,
                 from ../gtk2_ardour/led.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/eventbox.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1598/1835] Compiling gtk2_ardour/fft_graph.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/panner_ui.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/panner_ui.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:8,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1599/1835] Compiling gtk2_ardour/screensaver.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/container.h:23,
                 from ../libs/canvas/canvas/arrow.h:29,
                 from ../gtk2_ardour/region_peak_cursor.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../gtk2_ardour/region_peak_cursor.h:23,
                 from ../gtk2_ardour/region_peak_cursor.cc:26:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1600/1835] Compiling gtk2_ardour/luawindow.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/ardour_ui_keys.cc:39:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/ardour_ui.h:52:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/xml++.h:44,
                 from ../gtk2_ardour/ardour_ui.h:51:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1601/1835] Compiling gtk2_ardour/rhythm_ferret.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/route_time_axis.h:46,
                 from ../gtk2_ardour/midi_streamview.h:33,
                 from ../gtk2_ardour/piano_roll_header.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../gtk2_ardour/piano_roll_header.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/ardour/ardour/midi_channel_filter.h:25,
                 from ../libs/ardour/ardour/midi_track.h:25,
                 from ../gtk2_ardour/piano_roll_header.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../gtk2_ardour/piano_roll_header.cc:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/ardour/ardour/midi_channel_filter.h:27:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/time_axis_view.h:39,
                 from ../gtk2_ardour/automation_time_axis.h:44,
                 from ../gtk2_ardour/stripable_time_axis.h:22,
                 from ../gtk2_ardour/route_time_axis.h:48:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1602/1835] Compiling gtk2_ardour/curvetest.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../gtk2_ardour/pianokeyboard.cc:31:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/pango-1.0/pango/pango-coverage.h:25,
                 from /usr/include/pango-1.0/pango/pango-font.h:25,
                 from /usr/include/pango-1.0/pango/pango-attributes.h:25,
                 from /usr/include/pango-1.0/pango/pango.h:25,
                 from ../gtk2_ardour/pianokeyboard.cc:27:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1603/1835] Compiling gtk2_ardour/automation_streamview.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../gtk2_ardour/utils_videotl.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1604/1835] Compiling gtk2_ardour/ardour_window.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/splash.cc:31:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/glibmm-2.4/glibmm/pattern.h:26,
                 from ../libs/pbd/pbd/file_utils.h:27,
                 from ../gtk2_ardour/splash.cc:26:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/ardour/ardour/ardour.h:34,
                 from ../gtk2_ardour/splash.cc:28:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1605/1835] Compiling gtk2_ardour/bbt_marker_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/marker.cc:53:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/rectangle.h:24,
                 from ../gtk2_ardour/marker.cc:32:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/temporal/temporal/tempo.h:31,
                 from ../libs/ardour/ardour/tempo.h:4,
                 from ../gtk2_ardour/marker.cc:30:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../gtk2_ardour/marker.cc:37:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/public_editor.h:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1606/1835] Compiling gtk2_ardour/new_plugin_preset_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/ardour_ui_mixer.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../gtk2_ardour/ardour_ui_mixer.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1607/1835] Compiling gtk2_ardour/audio_region_view.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/floating_text_entry.cc:24:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/floating_text_entry.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/tk/ydk/ydk/gdk/gdktypes.h:36,
                 from ../libs/tk/ydk/ydk/gdk/gdkcolor.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkevents.h:34,
                 from ../libs/gtkmm2ext/gtkmm2ext/doi.h:28,
                 from ../gtk2_ardour/floating_text_entry.cc:20:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/pango-1.0/pango/pango-coverage.h:25,
                 from /usr/include/pango-1.0/pango/pango-font.h:25,
                 from /usr/include/pango-1.0/pango/pango-attributes.h:25,
                 from /usr/include/pango-1.0/pango/pango.h:25,
                 from ../libs/tk/ydk/ydk/gdk/gdktypes.h:37:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1608/1835] Compiling gtk2_ardour/patch_change.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/axis_view.cc:40:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/axis_view.cc:35:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/axis_view.cc:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1609/1835] Compiling gtk2_ardour/ardour_ui_video.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/keyboard.h:32,
                 from ../gtk2_ardour/panner2d.cc:43:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:31,
                 from ../gtk2_ardour/panner2d.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/spinbutton.h:29,
                 from ../gtk2_ardour/panner2d.h:35,
                 from ../gtk2_ardour/panner2d.cc:42:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1610/1835] Compiling gtk2_ardour/new_user_wizard.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_tempodisplay.cc:44:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/editor_tempodisplay.cc:41:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/editor_tempodisplay.cc:37:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1611/1835] Compiling gtk2_ardour/luainstance.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/trigger_ui.cc:46:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../gtk2_ardour/trigger_ui.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/glib/gprintf.h:23,
                 from /usr/include/glib-2.0/glib/gstdio.h:24,
                 from ../gtk2_ardour/trigger_ui.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/trigger_ui.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1612/1835] Compiling gtk2_ardour/audio_streamview.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/keyboard.h:32,
                 from ../gtk2_ardour/port_matrix_grid.cc:27:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/eventbox.h:31,
                 from ../gtk2_ardour/port_matrix_component.h:25,
                 from ../gtk2_ardour/port_matrix_grid.h:27,
                 from ../gtk2_ardour/port_matrix_grid.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/bundle.h:29,
                 from ../gtk2_ardour/port_matrix_grid.cc:23:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/time_axis_view.h:39,
                 from ../gtk2_ardour/automation_time_axis.h:44,
                 from ../gtk2_ardour/stripable_time_axis.h:22,
                 from ../gtk2_ardour/route_time_axis.h:48,
                 from ../gtk2_ardour/audio_time_axis.h:43,
                 from ../gtk2_ardour/track_view_list.h:29:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1613/1835] Compiling gtk2_ardour/trigger_route_list.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/toolitem.h:34,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/toolbar.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/settings.h:32,
                 from ../gtk2_ardour/ui_config.cc:35:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../gtk2_ardour/ui_config.cc:29:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from /usr/include/glibmm-2.4/glibmm/miscutils.h:23,
                 from ../gtk2_ardour/ui_config.cc:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1614/1835] Compiling gtk2_ardour/track_selection.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../gtk2_ardour/port_group.cc:35:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/gui_thread.h:21,
                 from ../gtk2_ardour/port_group.cc:53:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/midi++2/midi++/mmc.h:28,
                 from ../gtk2_ardour/port_group.cc:28:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/time_axis_view.h:39,
                 from ../gtk2_ardour/port_group.cc:56:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1615/1835] Compiling gtk2_ardour/source_list_base.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_rulers.cc:44:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:34,
                 from ../libs/tk/ytk/ytk/gtk/gtkaction.h:38,
                 from ../gtk2_ardour/editor_rulers.cc:36:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../gtk2_ardour/editor_rulers.cc:39:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65,
                 from ../gtk2_ardour/editor_rulers.cc:54:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1616/1835] Compiling gtk2_ardour/export_file_notebook.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/mergeable_line.cc:21:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../gtk2_ardour/automation_line.h:44,
                 from ../gtk2_ardour/mergeable_line.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/session.h:52:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/editor.h:48,
                 from ../gtk2_ardour/mergeable_line.cc:24:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1617/1835] Compiling gtk2_ardour/virtual_keyboard_window.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/group_tabs.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/group_tabs.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1618/1835] Compiling gtk2_ardour/level_meter.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/surround_strip.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/surround_strip.cc:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/pbd/pbd/stateful.h:32,
                 from ../libs/pbd/pbd/statefuldestructible.h:23,
                 from ../libs/ardour/ardour/processor.h:29,
                 from ../libs/ardour/ardour/meter.h:31,
                 from ../gtk2_ardour/surround_strip.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1619/1835] Compiling gtk2_ardour/quantize_dialog.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/timectl_gui.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1620/1835] Compiling gtk2_ardour/vca_master_strip.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:32,
                 from ../gtk2_ardour/region_list_base.h:28,
                 from ../gtk2_ardour/trigger_region_list.h:21,
                 from ../gtk2_ardour/trigger_region_list.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/celleditable.h:7,
                 from ../gtk2_ardour/region_list_base.h:27:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/glibmm-2.4/glibmm/interface.h:20,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/celleditable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/region_list_base.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1621/1835] Compiling gtk2_ardour/time_info_box.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/varispeed_dialog.cc:19:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/spinbutton.h:29,
                 from ../gtk2_ardour/varispeed_dialog.h:22,
                 from ../gtk2_ardour/varispeed_dialog.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/session.h:52:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1622/1835] Compiling gtk2_ardour/editor_export_audio.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/midi_export_dialog.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/midi_export_dialog.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1623/1835] Compiling gtk2_ardour/trigger_master.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/audio_trigger_properties_box.cc:35:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:31,
                 from ../gtk2_ardour/audio_trigger_properties_box.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/audio_trigger_properties_box.cc:28:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1624/1835] Compiling gtk2_ardour/time_selection.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/option_editor.cc:39:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/option_editor.cc:32:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/option_editor.cc:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1625/1835] Compiling gtk2_ardour/session_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/export_video_dialog.cc:37:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/filechooserdialog.h:31,
                 from ../gtk2_ardour/export_video_dialog.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/filechooserdialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/export_video_dialog.cc:31:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1626/1835] Compiling gtk2_ardour/port_matrix_component.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/bundle_manager.cc:30:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/bundle_manager.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1627/1835] Compiling gtk2_ardour/track_record_axis.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/editor_audio_import.cc:58:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/widgets/widgets/choice.h:26,
                 from ../gtk2_ardour/editor_audio_import.cc:41:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/pthread_utils.h:49,
                 from ../gtk2_ardour/editor_audio_import.cc:36:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/choice.h:27:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1628/1835] Compiling gtk2_ardour/soundcloud_export_selector.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/plugin_manager_ui.cc:37:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:32,
                 from ../gtk2_ardour/plugin_manager_ui.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/plugin_manager_ui.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1629/1835] Compiling gtk2_ardour/location_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_selection.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/editor.h:48,
                 from ../gtk2_ardour/editor_selection.cc:39:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/control_protocol_manager.h:30,
                 from ../gtk2_ardour/editor_selection.cc:30:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1630/1835] Compiling gtk2_ardour/edit_note_dialog.cc
[1631/1835] Compiling gtk2_ardour/gain_meter.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/bbt_marker_dialog.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1632/1835] Compiling gtk2_ardour/opts.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:33,
                 from ../gtk2_ardour/stereo_panner.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/stereo_panner.cc:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1633/1835] Compiling gtk2_ardour/ardour_ui_aaf.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/region_list_base.cc:34:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../gtk2_ardour/region_list_base.cc:40:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/glibmm-2.4/glibmm/pattern.h:26,
                 from ../libs/pbd/pbd/file_utils.h:27,
                 from ../gtk2_ardour/region_list_base.cc:28:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../gtk2_ardour/region_list_base.cc:41:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/ardour/ardour/audiosource.h:32,
                 from ../libs/ardour/ardour/audiofilesource.h:28,
                 from ../gtk2_ardour/region_list_base.cc:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/treeutils.h:22,
                 from ../gtk2_ardour/region_list_base.cc:42:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1634/1835] Compiling gtk2_ardour/plugin_eq_gui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/region_view.cc:50:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../gtk2_ardour/region_view.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1635/1835] Compiling gtk2_ardour/panner_interface.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/new_plugin_preset_dialog.h:23,
                 from ../gtk2_ardour/new_plugin_preset_dialog.cc:21:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/new_plugin_preset_dialog.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1636/1835] Compiling gtk2_ardour/script_selector.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/midi_streamview.cc:40:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../gtk2_ardour/midi_streamview.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1637/1835] Compiling gtk2_ardour/vca_time_axis.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_sections.cc:21:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../gtk2_ardour/editor_sections.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../gtk2_ardour/editor_sections.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65,
                 from ../gtk2_ardour/editor_sections.cc:26:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1638/1835] Compiling gtk2_ardour/return_ui.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/display.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/selectiondata.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treedragdest.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/liststore.h:29,
                 from ../gtk2_ardour/route_list_base.h:27,
                 from ../gtk2_ardour/trigger_route_list.h:22,
                 from ../gtk2_ardour/trigger_route_list.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/liststore.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeiter.h:34,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treemodel.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treedragdest.h:31:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/glibmm-2.4/glibmm/interface.h:20,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treedragdest.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/route_list_base.h:31:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1639/1835] Compiling gtk2_ardour/note_base.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/plugin_selector.h:43,
                 from ../gtk2_ardour/plugin_selector.cc:56:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/button.h:32,
                 from ../gtk2_ardour/plugin_selector.cc:35:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/button.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/plugin_selector.cc:36:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1640/1835] Compiling gtk2_ardour/audio_region_editor.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:33,
                 from ../gtk2_ardour/mono_panner.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/mono_panner.cc:36:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1641/1835] Compiling gtk2_ardour/plugin_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/window_manager.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:33,
                 from ../gtk2_ardour/window_manager.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1642/1835] Compiling gtk2_ardour/stereo_panner_editor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/session_metadata_dialog.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/filechooserdialog.h:31,
                 from ../gtk2_ardour/session_metadata_dialog.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/filechooserdialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/session_metadata_dialog.cc:26:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1643/1835] Compiling gtk2_ardour/route_time_axis.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/eventbox.h:31,
                 from ../gtk2_ardour/port_matrix_component.h:25,
                 from ../gtk2_ardour/port_matrix_component.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/eventbox.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1644/1835] Compiling gtk2_ardour/bundle_env_linux.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/luaproc.h:42,
                 from ../gtk2_ardour/processor_box.cc:64:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/processor_box.cc:41:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/refptr.h:21,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:21,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from /usr/include/glibmm-2.4/glibmm/miscutils.h:23,
                 from ../gtk2_ardour/processor_box.cc:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/processor_box.cc:48:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../gtk2_ardour/processor_box.h:39,
                 from ../gtk2_ardour/monitor_section.h:41,
                 from ../gtk2_ardour/mixer_ui.h:61,
                 from ../gtk2_ardour/processor_box.cc:91:
../libs/gtkmm2ext/gtkmm2ext/dndvbox.h: In instantiation of 'void Gtkmm2ext::DnDVBox<T>::drag_data_received(const Glib::RefPtr<Gdk::DragContext>&, int, int, const Gtk::SelectionData&, guint, guint) [with T = ProcessorEntry; guint = unsigned int]':
../libs/gtkmm2ext/gtkmm2ext/dndvbox.h:87:56:   required from 'Gtkmm2ext::DnDVBox<T>::DnDVBox(std::__cxx11::list<Gtk::TargetEntry>) [with T = ProcessorEntry]'
   87 |                 signal_drag_data_received().connect (mem_fun (*this, &DnDVBox::drag_data_received));
      |                                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/processor_box.cc:1946:4:   required from here
 1946 |         , processor_display (drop_targets())
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/gtkmm2ext/gtkmm2ext/dndvbox.h:398:38: warning: cast from 'const guchar*' {aka 'const unsigned char*'} to 'ProcessorEntry* const*' increases required alignment of target type [-Wcast-align]
  398 |                         T* child = *((T * const *) selection_data.get_data());
      |                                     ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[1645/1835] Compiling gtk2_ardour/ardour_ui_options.cc
[1646/1835] Compiling gtk2_ardour/export_format_selector.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/screensaver.cc:68:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../gtk2_ardour/utils.h:39,
                 from ../gtk2_ardour/screensaver.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/ardour/ardour/types.h:54,
                 from ../gtk2_ardour/utils.h:37:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../gtk2_ardour/utils.h:40:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1647/1835] Compiling gtk2_ardour/patch_change_widget.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/export_channel_selector.cc:40:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:31,
                 from ../gtk2_ardour/export_channel_selector.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/spinbutton.h:29,
                 from ../gtk2_ardour/export_channel_selector.h:45,
                 from ../gtk2_ardour/export_channel_selector.cc:43:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1648/1835] Compiling gtk2_ardour/plugin_pin_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/region_gain_line.cc:30:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../gtk2_ardour/automation_line.h:44,
                 from ../gtk2_ardour/region_fx_line.h:22,
                 from ../gtk2_ardour/region_gain_line.h:30,
                 from ../gtk2_ardour/region_gain_line.cc:33:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/command.h:29,
                 from ../libs/pbd/pbd/memento_command.h:29,
                 from ../gtk2_ardour/region_gain_line.cc:26:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/time_axis_view.h:33,
                 from ../gtk2_ardour/region_gain_line.cc:36:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/time_axis_view.h:39:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1649/1835] Compiling gtk2_ardour/ardour_ui_access_web.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/audio_clock.cc:45:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/gc.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/style.h:38,
                 from ../gtk2_ardour/audio_clock.cc:35:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/convert.h:29,
                 from ../gtk2_ardour/audio_clock.cc:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/audio_clock.cc:38:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/style.h:35:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1650/1835] Compiling gtk2_ardour/region_editor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/slot_properties_box.cc:42:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/slot_properties_box.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/basename.h:23,
                 from ../gtk2_ardour/slot_properties_box.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:31,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:33:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1651/1835] Compiling gtk2_ardour/midi_tracer.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/audio_clip_editor.cc:38:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../gtk2_ardour/audio_clip_editor.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/audio_clip_editor.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1652/1835] Compiling gtk2_ardour/debug.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../gtk2_ardour/sfdb_ui.cc:68:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/sfdb_ui.cc:48:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../gtk2_ardour/sfdb_ui.cc:44:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/fileutils.h:27,
                 from ../gtk2_ardour/sfdb_ui.cc:46:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/sfdb_ui.cc:50:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1653/1835] Compiling gtk2_ardour/editor_audiotrack.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/video_timeline.cc:30:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/ardour_ui.h:52:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/temporal/temporal/tempo.h:31,
                 from ../libs/ardour/ardour/tempo.h:4,
                 from ../gtk2_ardour/video_timeline.cc:23:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1654/1835] Compiling gtk2_ardour/route_params_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/cuebox_ui.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../gtk2_ardour/cuebox_ui.cc:310:2: warning: #warning @Ben disambiguate processor *active* vs *visibility* [-Wcpp]
  310 | #warning @Ben disambiguate processor *active* vs *visibility*
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../libs/canvas/canvas/fill.h:30,
                 from ../libs/canvas/canvas/arc.h:22,
                 from ../libs/canvas/canvas/circle.h:24,
                 from ../gtk2_ardour/cuebox_ui.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/attrlist.h:6,
                 from /usr/include/pangomm-1.4/pangomm.h:70,
                 from ../gtk2_ardour/cuebox_ui.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:31,
                 from ../gtk2_ardour/cuebox_ui.cc:32:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/language.h:29,
                 from /usr/include/pangomm-1.4/pangomm/attributes.h:28,
                 from /usr/include/pangomm-1.4/pangomm/attrlist.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/cuebox_ui.cc:37:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1655/1835] Compiling gtk2_ardour/ambiguous_file_dialog.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../gtk2_ardour/panner_interface.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1656/1835] Compiling gtk2_ardour/control_slave_ui.cc
[1657/1835] Compiling gtk2_ardour/editor_ops.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/fft_graph.cc:40:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/gc.h:32,
                 from ../gtk2_ardour/fft_graph.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../gtk2_ardour/fft_graph.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../gtk2_ardour/fft_graph.cc:29:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/analysis_window.h:29,
                 from ../gtk2_ardour/fft_graph.cc:39:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1658/1835] Compiling gtk2_ardour/ardour_message.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:32,
                 from ../gtk2_ardour/script_selector.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/script_selector.cc:20:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1659/1835] Compiling gtk2_ardour/meterbridge.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../gtk2_ardour/utils.cc:55:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:34,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkpaned.h:34,
                 from ../gtk2_ardour/utils.cc:44:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:30,
                 from ../gtk2_ardour/utils.cc:45:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/utils.cc:48:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1660/1835] Compiling gtk2_ardour/plugin_dspload_window.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../gtk2_ardour/export_report.cc:34:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:30,
                 from ../gtk2_ardour/export_report.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:6,
                 from ../gtk2_ardour/export_report.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/layout.h:28:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/export_report.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1661/1835] Compiling gtk2_ardour/piano_key_bindings.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.cc:57:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/route_ui.cc:33:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1662/1835] Compiling gtk2_ardour/time_axis_view.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/ardour_window.cc:27:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:33,
                 from ../gtk2_ardour/ardour_window.h:22,
                 from ../gtk2_ardour/ardour_window.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/tk/ydk/ydk/gdk/gdktypes.h:36,
                 from ../libs/tk/ydk/ydk/gdk/gdkcolor.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkevents.h:34,
                 from ../libs/gtkmm2ext/gtkmm2ext/doi.h:28,
                 from ../gtk2_ardour/ardour_window.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/pango-1.0/pango/pango-coverage.h:25,
                 from /usr/include/pango-1.0/pango/pango-font.h:25,
                 from /usr/include/pango-1.0/pango/pango-attributes.h:25,
                 from /usr/include/pango-1.0/pango/pango.h:25,
                 from ../libs/tk/ydk/ydk/gdk/gdktypes.h:37:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1663/1835] Compiling gtk2_ardour/note.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/export_handler.h:36,
                 from ../libs/ardour/ardour/soundcloud_upload.h:19,
                 from ../gtk2_ardour/soundcloud_export_selector.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:32,
                 from ../gtk2_ardour/soundcloud_export_selector.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/soundcloud_export_selector.h:18,
                 from ../gtk2_ardour/soundcloud_export_selector.cc:24:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1664/1835] Compiling gtk2_ardour/automation_region_view.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/mixer_strip.h:58,
                 from ../gtk2_ardour/mixer_group_tabs.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/mixer_group_tabs.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:8,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1665/1835] Compiling gtk2_ardour/visibility_group.cc
[1666/1835] Compiling gtk2_ardour/dsp_stats_window.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/opts.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

[1667/1835] Compiling gtk2_ardour/audio_region_properties_box.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/rhythm_ferret.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/rhythm_ferret.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1668/1835] Compiling gtk2_ardour/ardour_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_manager.h:39,
                 from ../gtk2_ardour/monitor_section.cc:46:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../gtk2_ardour/monitor_section.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../gtk2_ardour/monitor_section.cc:30:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/monitor_section.cc:31:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1669/1835] Compiling gtk2_ardour/midi_time_axis.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_sources.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/widgets/widgets/choice.h:26,
                 from ../gtk2_ardour/editor_sources.cc:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/audiosource.h:32,
                 from ../libs/ardour/ardour/audiofilesource.h:28,
                 from ../gtk2_ardour/editor_sources.cc:23:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/choice.h:27:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1670/1835] Compiling gtk2_ardour/trigger_page.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../gtk2_ardour/piano_key_bindings.h:26,
                 from ../gtk2_ardour/piano_key_bindings.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1671/1835] Compiling gtk2_ardour/editor_mixer.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/automation_time_axis.cc:49:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/separator.h:31,
                 from ../gtk2_ardour/automation_time_axis.cc:35:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/separator.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/automation_time_axis.cc:51:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1672/1835] Compiling gtk2_ardour/trigger_clip_picker.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/source_list_base.cc:20:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/gui_thread.h:21,
                 from ../gtk2_ardour/source_list_base.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/command.h:29,
                 from ../libs/temporal/temporal/domain_swap.h:24,
                 from ../libs/ardour/ardour/region.h:30,
                 from ../gtk2_ardour/source_list_base.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/region_list_base.h:34,
                 from ../gtk2_ardour/source_list_base.h:21,
                 from ../gtk2_ardour/source_list_base.cc:23:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1673/1835] Compiling gtk2_ardour/stripable_time_axis.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/track_selection.cc:21:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/colorselection.h:30,
                 from ../gtk2_ardour/route_ui.h:33:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/ardour/ardour/types.h:54,
                 from ../gtk2_ardour/track_view_list.h:23:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/time_axis_view.h:39,
                 from ../gtk2_ardour/automation_time_axis.h:44,
                 from ../gtk2_ardour/stripable_time_axis.h:22,
                 from ../gtk2_ardour/route_time_axis.h:48,
                 from ../gtk2_ardour/audio_time_axis.h:43,
                 from ../gtk2_ardour/track_view_list.h:29:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1674/1835] Compiling gtk2_ardour/pt_import_selector.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../gtk2_ardour/gain_meter.h:33,
                 from ../gtk2_ardour/return_ui.h:24,
                 from ../gtk2_ardour/return_ui.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/tk/ydk/ydk/gdk/gdktypes.h:36,
                 from ../libs/tk/ydk/ydk/gdk/gdkcolor.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkevents.h:34,
                 from ../libs/gtkmm2ext/gtkmm2ext/doi.h:28,
                 from ../gtk2_ardour/return_ui.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/pango-1.0/pango/pango-coverage.h:25,
                 from /usr/include/pango-1.0/pango/pango-font.h:25,
                 from /usr/include/pango-1.0/pango/pango-attributes.h:25,
                 from /usr/include/pango-1.0/pango/pango.h:25,
                 from ../libs/tk/ydk/ydk/gdk/gdktypes.h:37:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/widgets/widgets/focus_entry.h:23,
                 from ../gtk2_ardour/gain_meter.h:50:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1675/1835] Compiling gtk2_ardour/ardour_http.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/transport_masters_dialog.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/widgets/widgets/ardour_icon.h:24,
                 from ../gtk2_ardour/transport_masters_dialog.cc:31:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/audioengine.h:38,
                 from ../gtk2_ardour/transport_masters_dialog.cc:25:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/transport_masters_dialog.cc:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1676/1835] Compiling gtk2_ardour/speaker_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/ardour_ui_video.cc:50:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/ardour_ui_video.cc:41:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/glib/gprintf.h:23,
                 from /usr/include/glib-2.0/glib/gstdio.h:24,
                 from ../libs/pbd/pbd/gstdio_compat.h:29,
                 from ../gtk2_ardour/ardour_ui_video.cc:39:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1677/1835] Compiling gtk2_ardour/midi_automation_line.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/export_handler.h:36,
                 from ../libs/ardour/ardour/export_profile_manager.h:38,
                 from ../gtk2_ardour/export_file_notebook.h:36,
                 from ../gtk2_ardour/export_file_notebook.cc:24:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../gtk2_ardour/export_file_notebook.h:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../gtk2_ardour/export_format_selector.h:31,
                 from ../gtk2_ardour/export_file_notebook.h:39:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1678/1835] Compiling gtk2_ardour/editor_regions.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/ardour_message.h:22,
                 from ../gtk2_ardour/ardour_message.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1679/1835] Compiling gtk2_ardour/transport_control.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../gtk2_ardour/stereo_panner_editor.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1680/1835] Compiling gtk2_ardour/verbose_cursor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/route_time_axis.h:46,
                 from ../gtk2_ardour/automation_streamview.h:32,
                 from ../gtk2_ardour/automation_streamview.cc:38:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../gtk2_ardour/automation_streamview.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1681/1835] Compiling gtk2_ardour/editor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/luawindow.cc:47:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/luawindow.cc:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/glib/gprintf.h:23,
                 from /usr/include/glib-2.0/glib/gstdio.h:24,
                 from ../libs/pbd/pbd/gstdio_compat.h:29,
                 from ../gtk2_ardour/luawindow.cc:28:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/fileutils.h:27,
                 from ../gtk2_ardour/luawindow.cc:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/luawindow.cc:37:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1682/1835] Compiling gtk2_ardour/midi_velocity_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/quantize_dialog.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/quantize_dialog.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1683/1835] Compiling gtk2_ardour/panner_editor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/editor.h:72,
                 from ../gtk2_ardour/patch_change.cc:35:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../gtk2_ardour/patch_change.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/refptr.h:21,
                 from /usr/include/glibmm-2.4/glibmm/regex.h:24,
                 from ../gtk2_ardour/patch_change.cc:25:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/regex.h:26:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/patch_change.cc:29:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1684/1835] Compiling gtk2_ardour/export_format_dialog.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:30,
                 from ../gtk2_ardour/ambiguous_file_dialog.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1685/1835] Compiling gtk2_ardour/transform_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_manager.h:39,
                 from ../gtk2_ardour/new_user_wizard.cc:49:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../gtk2_ardour/new_user_wizard.cc:36:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/glib/gprintf.h:23,
                 from /usr/include/glib-2.0/glib/gstdio.h:24,
                 from ../libs/pbd/pbd/gstdio_compat.h:29,
                 from ../gtk2_ardour/new_user_wizard.cc:34:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1686/1835] Compiling gtk2_ardour/nag.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/button.h:32,
                 from ../gtk2_ardour/dsp_stats_ui.h:22,
                 from ../gtk2_ardour/dsp_stats_window.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/button.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1687/1835] Compiling gtk2_ardour/mono_panner_editor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/midi_time_axis.h:43,
                 from ../gtk2_ardour/midi_region_view.h:39,
                 from ../gtk2_ardour/edit_note_dialog.cc:28:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/edit_note_dialog.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1688/1835] Compiling gtk2_ardour/automation_line.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/ardour_ui_dialogs.cc:44:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/display.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/selectiondata.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treepath.h:35,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treemodelfilter.h:30,
                 from ../gtk2_ardour/ardour_ui_dialogs.cc:36:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treemodelfilter.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeiter.h:34,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treemodel.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treepath.h:36:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/ardour_ui_dialogs.cc:50:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1689/1835] Compiling gtk2_ardour/ardour_ui_startup.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/trigger_master.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../gtk2_ardour/trigger_master.cc:733:2: warning: #warning @Ben disambiguate processor *active* vs *visibility* [-Wcpp]
  733 | #warning @Ben disambiguate processor *active* vs *visibility*
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/filechooserdialog.h:31,
                 from ../gtk2_ardour/trigger_master.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/filechooserdialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/trigger_master.cc:22:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1690/1835] Compiling gtk2_ardour/mixer_strip.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:31,
                 from ../gtk2_ardour/visibility_group.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/visibility_group.cc:23:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1691/1835] Compiling gtk2_ardour/port_matrix_column_labels.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/audio_streamview.cc:39:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../gtk2_ardour/audio_streamview.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1692/1835] Compiling gtk2_ardour/port_matrix_labels.cc
[1693/1835] Compiling gtk2_ardour/midi_region_operations_box.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/note_base.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../gtk2_ardour/note_base.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/public_editor.h:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1694/1835] Compiling gtk2_ardour/selection.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/virtual_keyboard_window.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/virtual_keyboard_window.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/virtual_keyboard_window.cc:28:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1695/1835] Compiling gtk2_ardour/video_server_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/vca_master_strip.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/vca_master_strip.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1696/1835] Compiling gtk2_ardour/public_editor.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/midi_velocity_dialog.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1697/1835] Compiling gtk2_ardour/input_port_monitor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/io_plug.h:31,
                 from ../gtk2_ardour/io_plugin_window.cc:24:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:32,
                 from ../gtk2_ardour/io_plugin_window.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/io_plugin_window.cc:32:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../gtk2_ardour/io_plugin_window.cc: In member function 'void IOPluginWindow::PluginBox::drag_data_received(const Glib::RefPtr<Gdk::DragContext>&, int, int, const Gtk::SelectionData&, guint, guint)':
../gtk2_ardour/io_plugin_window.cc:228:27: warning: cast from 'const guchar*' {aka 'const unsigned char*'} to 'const Gtkmm2ext::DnDTreeView<std::shared_ptr<ARDOUR::PluginInfo> >*' increases required alignment of target type [-Wcast-align]
  228 |                 auto tv = reinterpret_cast<const Gtkmm2ext::DnDTreeView<ARDOUR::PluginInfoPtr>*> (data.get_data ());
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/io_plugin_window.cc:242:27: warning: cast from 'const guchar*' {aka 'const unsigned char*'} to 'const Gtkmm2ext::DnDTreeView<std::shared_ptr<ARDOUR::PluginPreset> >*' increases required alignment of target type [-Wcast-align]
  242 |                 auto tv = reinterpret_cast<const Gtkmm2ext::DnDTreeView<ARDOUR::PluginPresetPtr>*> (data.get_data ());
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[1698/1835] Compiling gtk2_ardour/shuttle_control.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../gtk2_ardour/plugin_eq_gui.cc:49:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/plugin_eq_gui.cc:40:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/plugin_eq_gui.cc:44:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1699/1835] Compiling gtk2_ardour/vst_plugin_ui.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:33,
                 from ../gtk2_ardour/ardour_dialog.h:25,
                 from ../gtk2_ardour/panner_editor.h:23,
                 from ../gtk2_ardour/panner_editor.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1700/1835] Compiling gtk2_ardour/transcode_ffmpeg.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/keyboard.h:32,
                 from ../gtk2_ardour/level_meter.cc:35:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/level_meter.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/pbd/pbd/stateful.h:32,
                 from ../libs/pbd/pbd/statefuldestructible.h:23,
                 from ../libs/ardour/ardour/processor.h:29,
                 from ../libs/ardour/ardour/meter.h:31,
                 from ../gtk2_ardour/level_meter.cc:26:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1701/1835] Compiling gtk2_ardour/hit.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/time_info_box.cc:30:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/time_info_box.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/time_info_box.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1702/1835] Compiling gtk2_ardour/generic_pluginui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/session_dialog.cc:54:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/filechooser.h:29,
                 from ../gtk2_ardour/session_dialog.cc:34:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../gtk2_ardour/session_dialog.cc:30:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../gtk2_ardour/session_dialog.cc:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/session_dialog.cc:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1703/1835] Compiling gtk2_ardour/io_selector.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/textview.h:35,
                 from ../gtk2_ardour/midi_tracer.h:27,
                 from ../gtk2_ardour/midi_tracer.cc:39:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/midi++2/midi++/parser.h:28,
                 from ../gtk2_ardour/midi_tracer.cc:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/spinbutton.h:29,
                 from ../gtk2_ardour/midi_tracer.h:31:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1704/1835] Compiling gtk2_ardour/lua_script_manager.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plug_insert_base.h:29,
                 from ../libs/ardour/ardour/region_fx_plugin.h:31,
                 from ../gtk2_ardour/audio_region_view.cc:39:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../gtk2_ardour/audio_region_view.cc:33:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../gtk2_ardour/audio_region_view.cc: In function 'Cairo::RefPtr<Cairo::Pattern> create_pending_peak_pattern()':
../gtk2_ardour/audio_region_view.cc:100:43: warning: cast from 'unsigned char*' to 'uint32_t*' {aka 'unsigned int*'} increases required alignment of target type [-Wcast-align]
  100 |                         uint32_t *pixel = (uint32_t*) &img[off];
      |                                           ^~~~~~~~~~~~~~~~~~~~~

[1705/1835] Compiling gtk2_ardour/port_matrix_body.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../gtk2_ardour/speaker_dialog.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/spinbutton.h:29,
                 from ../gtk2_ardour/speaker_dialog.h:25,
                 from ../gtk2_ardour/speaker_dialog.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1706/1835] Compiling gtk2_ardour/midi_selection.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_export_audio.cc:46:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/editor_export_audio.cc:32:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65,
                 from ../gtk2_ardour/editor_export_audio.cc:51:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1707/1835] Compiling gtk2_ardour/midi_clip_editor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/export_handler.h:36,
                 from ../libs/ardour/ardour/export_profile_manager.h:38,
                 from ../gtk2_ardour/export_format_selector.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/export_format_selector.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/export_format_selector.cc:22:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1708/1835] Compiling gtk2_ardour/loudness_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/ardour_ui_access_web.cc:42:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/ardour_message.h:22,
                 from ../gtk2_ardour/ardour_ui_access_web.cc:41:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1709/1835] Compiling gtk2_ardour/recorder_ui.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/nag.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/glib/gprintf.h:23,
                 from /usr/include/glib-2.0/glib/gstdio.h:24,
                 from ../libs/pbd/pbd/gstdio_compat.h:29,
                 from ../gtk2_ardour/nag.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1710/1835] Compiling gtk2_ardour/recorder_group_tabs.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plug_insert_base.h:29,
                 from ../libs/ardour/ardour/region_fx_plugin.h:31,
                 from ../gtk2_ardour/audio_region_editor.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/audio_region_editor.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:8,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1711/1835] Compiling gtk2_ardour/ardour_ui_ed.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/control_slave_ui.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:31,
                 from ../gtk2_ardour/control_slave_ui.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/control_slave_ui.cc:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1712/1835] Compiling gtk2_ardour/port_matrix.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_manager.h:39,
                 from ../gtk2_ardour/ardour_ui_aaf.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/ardour_ui.h:52,
                 from ../gtk2_ardour/ardour_ui_aaf.cc:41:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/glib/gprintf.h:23,
                 from /usr/include/glib-2.0/glib/gstdio.h:24,
                 from ../gtk2_ardour/ardour_ui_aaf.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/ardour/ardour/types.h:54,
                 from ../libs/ardour/ardour/interthread_info.h:25,
                 from ../libs/ardour/ardour/audio_track.h:25,
                 from ../gtk2_ardour/ardour_ui_aaf.cc:27:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1713/1835] Compiling gtk2_ardour/editor_drag.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/eventbox.h:31,
                 from ../gtk2_ardour/port_matrix_component.h:25,
                 from ../gtk2_ardour/port_matrix_labels.h:22,
                 from ../gtk2_ardour/port_matrix_labels.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/bundle.h:29,
                 from ../gtk2_ardour/port_matrix_labels.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1714/1835] Compiling gtk2_ardour/rec_info_box.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/note.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/rectangle.h:24,
                 from ../libs/canvas/canvas/note.h:23,
                 from ../gtk2_ardour/note.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/evoral/evoral/Note.h:26,
                 from ../gtk2_ardour/note.cc:20:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../gtk2_ardour/utils.h:40,
                 from ../gtk2_ardour/ui_config.h:47,
                 from ../gtk2_ardour/note_base.h:33,
                 from ../gtk2_ardour/note.h:23,
                 from ../gtk2_ardour/note.cc:25:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/public_editor.h:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1715/1835] Compiling gtk2_ardour/editor_mouse.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/editor.h:72,
                 from ../gtk2_ardour/editor_audiotrack.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../gtk2_ardour/editor_audiotrack.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/editor.h:48:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1716/1835] Compiling gtk2_ardour/linux_vst_gui_support.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../gtk2_ardour/port_matrix_column_labels.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1717/1835] Compiling gtk2_ardour/tempo_map_change.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/lv2_plugin.h:34,
                 from ../gtk2_ardour/ardour_ui_options.cc:35:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/ardour_ui_options.cc:40:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/convert.h:29,
                 from ../gtk2_ardour/ardour_ui_options.cc:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/ardour/ardour/lv2_plugin.h:27:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1718/1835] Compiling gtk2_ardour/automation_controller.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/pt_import_selector.h:31,
                 from ../gtk2_ardour/pt_import_selector.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/pt_import_selector.cc:31:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/pt_import_selector.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1719/1835] Compiling gtk2_ardour/foldback_strip.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/transform_dialog.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/transform_dialog.cc:22:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../gtk2_ardour/transform_dialog.h:31,
                 from ../gtk2_ardour/transform_dialog.cc:24:
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:259:64:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' may be used uninitialized [-Wmaybe-uninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:259:77: note: '<anonymous>' declared here
  259 |                 ops.push_back(Operation(Operation::PUSH, Value(Value::RANDOM)));
      |                                                                             ^
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:260:56:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' may be used uninitialized [-Wmaybe-uninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:260:69: note: '<anonymous>' declared here
  260 |                 ops.push_back(Operation(Operation::PUSH, Value(range)));
      |                                                                     ^
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:261:42:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' may be used uninitialized [-Wmaybe-uninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:261:56: note: '<anonymous>' declared here
  261 |                 ops.push_back(Operation(Operation::MULT));
      |                                                        ^
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:262:54:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' may be used uninitialized [-Wmaybe-uninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:262:67: note: '<anonymous>' declared here
  262 |                 ops.push_back(Operation(Operation::PUSH, Value(min)));
      |                                                                   ^
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:263:41:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' may be used uninitialized [-Wmaybe-uninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:263:55: note: '<anonymous>' declared here
  263 |                 ops.push_back(Operation(Operation::ADD));
      |                                                       ^
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:274:63:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' may be used uninitialized [-Wmaybe-uninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:274:76: note: '<anonymous>' declared here
  274 |                 ops.push_back(Operation(Operation::PUSH, Value(Value::INDEX)));
      |                                                                            ^
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:275:55:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' may be used uninitialized [-Wmaybe-uninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:275:68: note: '<anonymous>' declared here
  275 |                 ops.push_back(Operation(Operation::PUSH, Value(rise)));
      |                                                                    ^
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:276:42:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' may be used uninitialized [-Wmaybe-uninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:276:56: note: '<anonymous>' declared here
  276 |                 ops.push_back(Operation(Operation::MULT));
      |                                                        ^
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:277:65:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' may be used uninitialized [-Wmaybe-uninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:277:78: note: '<anonymous>' declared here
  277 |                 ops.push_back(Operation(Operation::PUSH, Value(Value::N_NOTES)));
      |                                                                              ^
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:278:52:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' may be used uninitialized [-Wmaybe-uninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:278:65: note: '<anonymous>' declared here
  278 |                 ops.push_back(Operation(Operation::PUSH, Value(1)));
      |                                                                 ^
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:279:41:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' may be used uninitialized [-Wmaybe-uninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:279:55: note: '<anonymous>' declared here
  279 |                 ops.push_back(Operation(Operation::SUB));
      |                                                       ^
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:280:41:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' may be used uninitialized [-Wmaybe-uninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:280:55: note: '<anonymous>' declared here
  280 |                 ops.push_back(Operation(Operation::DIV));
      |                                                       ^
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:281:56:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' may be used uninitialized [-Wmaybe-uninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:281:69: note: '<anonymous>' declared here
  281 |                 ops.push_back(Operation(Operation::PUSH, Value(first)));
      |                                                                     ^
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:282:41:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' may be used uninitialized [-Wmaybe-uninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::ValueChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:282:55: note: '<anonymous>' declared here
  282 |                 ops.push_back(Operation(Operation::ADD));
      |                                                       ^
In copy constructor 'ARDOUR::Transform::Value::Value(const ARDOUR::Transform::Value&)',
    inlined from 'ARDOUR::Transform::Operation::Operation(Operator, const ARDOUR::Transform::Value&)' at ../libs/ardour/ardour/transform.h:113:58,
    inlined from 'void TransformDialog::OperationChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)' at ../gtk2_ardour/transform_dialog.cc:333:54:
../libs/ardour/ardour/transform.h:71:16: warning: '<unnamed>.ARDOUR::Transform::Value::prop' is used uninitialized [-Wuninitialized]
   71 |         struct Value {
      |                ^~~~~
../gtk2_ardour/transform_dialog.cc: In member function 'void TransformDialog::OperationChooser::get(std::__cxx11::list<ARDOUR::Transform::Operation>&)':
../gtk2_ardour/transform_dialog.cc:333:61: note: '<anonymous>' declared here
  333 |         ops.push_back(Operation((*o)[model.operator_cols.op]));
      |                                                             ^

[1720/1835] Compiling gtk2_ardour/nsm.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/table.h:30,
                 from ../gtk2_ardour/mono_panner_editor.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/table.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from /usr/include/glibmm-2.4/glibmm/sarray.h:25,
                 from /usr/include/glibmm-2.4/glibmm/containers.h:23,
                 from /usr/include/glibmm-2.4/glibmm/helperlist.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/table.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/mono_panner_editor.cc:22:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1721/1835] Compiling gtk2_ardour/plugin_scan_dialog.cc
[1722/1835] Compiling gtk2_ardour/rc_option_editor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/location_ui.cc:32:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/location_ui.cc:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:8,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1723/1835] Compiling gtk2_ardour/route_group_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/vca_time_axis.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:31,
                 from ../gtk2_ardour/vca_time_axis.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/vca_time_axis.cc:31:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1724/1835] Compiling gtk2_ardour/editor_section_box.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/io_plug.h:31,
                 from ../gtk2_ardour/plugin_dspload_window.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:32,
                 from ../gtk2_ardour/plugin_dspload_window.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1725/1835] Compiling gtk2_ardour/tempo_curve.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/track_record_axis.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../gtk2_ardour/track_record_axis.cc:37:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/pbd/pbd/stateful.h:32,
                 from ../libs/pbd/pbd/statefuldestructible.h:23,
                 from ../libs/ardour/ardour/processor.h:29,
                 from ../libs/ardour/ardour/meter.h:31,
                 from ../gtk2_ardour/track_record_axis.cc:26:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../gtk2_ardour/track_record_axis.cc:38:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/track_record_axis.cc:41:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1726/1835] Compiling gtk2_ardour/editor_pt_import.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/session_route.h:29,
                 from ../gtk2_ardour/gain_meter.cc:41:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../gtk2_ardour/gain_meter.cc:32:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/attrlist.h:6,
                 from /usr/include/pangomm-1.4/pangomm.h:70,
                 from ../gtk2_ardour/gain_meter.cc:30:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/language.h:29,
                 from /usr/include/pangomm-1.4/pangomm/attributes.h:28,
                 from /usr/include/pangomm-1.4/pangomm/attrlist.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/gain_meter.cc:45:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1727/1835] Compiling gtk2_ardour/insert_remove_time_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../gtk2_ardour/plugin_ui.cc:49:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/plugin_ui.cc:39:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/xml++.h:44,
                 from ../gtk2_ardour/plugin_ui.cc:37:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/plugin_ui.cc:44:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1728/1835] Compiling gtk2_ardour/meter_strip.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../gtk2_ardour/patch_change_widget.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:32,
                 from ../gtk2_ardour/patch_change_widget.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/patch_change_widget.cc:37:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1729/1835] Compiling gtk2_ardour/plugin_presets_ui.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/input_port_monitor.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/ardour/ardour/types.h:54,
                 from ../libs/ardour/ardour/parameter_descriptor.h:24,
                 from ../gtk2_ardour/input_port_monitor.cc:25:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1730/1835] Compiling gtk2_ardour/about.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/audio_region_properties_box.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../gtk2_ardour/audio_region_properties_box.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/audio_region_properties_box.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1731/1835] Compiling gtk2_ardour/instrument_selector.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/audio_time_axis.h:40,
                 from ../gtk2_ardour/time_axis_view.cc:55:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/separator.h:31,
                 from ../gtk2_ardour/time_axis_view.cc:35:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/separator.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/time_axis_view.cc:45:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1732/1835] Compiling gtk2_ardour/editor_actions.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/vst_plugin.h:26,
                 from ../gtk2_ardour/linux_vst_gui_support.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../gtk2_ardour/linux_vst_gui_support.cc: In function 'int getXWindowProperty(Window, Atom)':
../gtk2_ardour/linux_vst_gui_support.cc:113:27: warning: cast from 'unsigned char*' to 'int*' increases required alignment of target type [-Wcast-align]
  113 |                 result = *(int*)data;
      |                           ^~~~~~~~~~
../gtk2_ardour/linux_vst_gui_support.cc: In function 'void dispatch_x_events(XEvent*, VSTState*)':
../gtk2_ardour/linux_vst_gui_support.cc:256:60: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  256 |                                         vstfx->eventProc = (void (*) (void* event))result;
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[1733/1835] Compiling gtk2_ardour/big_transport_window.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/editor_mixer.cc:42:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/editor_mixer.cc:31:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/refptr.h:21,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:21,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from /usr/include/glibmm-2.4/glibmm/miscutils.h:23,
                 from ../gtk2_ardour/editor_mixer.cc:30:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/editor_mixer.cc:32:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1734/1835] Compiling gtk2_ardour/control_point_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/stripable_time_axis.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:31,
                 from ../gtk2_ardour/stripable_time_axis.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/public_editor.h:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1735/1835] Compiling gtk2_ardour/control_point.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/midi_automation_list_binder.h:24,
                 from ../gtk2_ardour/midi_automation_line.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../gtk2_ardour/automation_line.h:44,
                 from ../gtk2_ardour/midi_automation_line.h:21,
                 from ../gtk2_ardour/midi_automation_line.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/command.h:29,
                 from ../libs/pbd/pbd/memento_command.h:29,
                 from ../libs/ardour/ardour/midi_automation_list_binder.h:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/table.h:30,
                 from ../gtk2_ardour/midi_time_axis.h:29,
                 from ../gtk2_ardour/midi_automation_line.cc:28:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/time_axis_view.h:39,
                 from ../gtk2_ardour/automation_time_axis.h:44,
                 from ../gtk2_ardour/stripable_time_axis.h:22,
                 from ../gtk2_ardour/route_time_axis.h:48,
                 from ../gtk2_ardour/midi_time_axis.h:45:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1736/1835] Compiling gtk2_ardour/editor_canvas.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/midi_automation_list_binder.h:24,
                 from ../gtk2_ardour/automation_region_view.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../gtk2_ardour/automation_region_view.cc:34:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/command.h:29,
                 from ../libs/pbd/pbd/memento_command.h:29,
                 from ../gtk2_ardour/automation_region_view.cc:25:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/time_axis_view.h:39,
                 from ../gtk2_ardour/automation_time_axis.h:44,
                 from ../gtk2_ardour/automation_region_view.h:27,
                 from ../gtk2_ardour/automation_region_view.cc:36:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1737/1835] Compiling gtk2_ardour/duplicate_routes_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/transport_control.cc:20:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../gtk2_ardour/actions.h:27,
                 from ../gtk2_ardour/transport_control.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/location.h:36,
                 from ../gtk2_ardour/transport_control.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65,
                 from ../gtk2_ardour/transport_control.cc:23:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1738/1835] Compiling gtk2_ardour/keyeditor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/video_server_dialog.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/video_server_dialog.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/video_server_dialog.cc:27:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1739/1835] Compiling gtk2_ardour/track_view_list.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/editor.h:72,
                 from ../gtk2_ardour/verbose_cursor.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/container.h:23,
                 from ../libs/canvas/canvas/scroll_group.h:23,
                 from ../gtk2_ardour/verbose_cursor.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/enums.h:7,
                 from ../gtk2_ardour/verbose_cursor.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../gtk2_ardour/audio_clock.h:34,
                 from ../gtk2_ardour/verbose_cursor.cc:32:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/enums.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/editor.h:48:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1740/1835] Compiling gtk2_ardour/export_timespan_selector.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/gui_thread.h:21,
                 from ../gtk2_ardour/port_matrix_body.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/bundle.h:29,
                 from ../gtk2_ardour/port_matrix_body.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1741/1835] Compiling gtk2_ardour/video_image_frame.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../libs/canvas/canvas/fill.h:30,
                 from ../libs/canvas/canvas/polygon.h:23,
                 from ../gtk2_ardour/hit.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/evoral/evoral/Note.h:26,
                 from ../gtk2_ardour/hit.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../gtk2_ardour/utils.h:40,
                 from ../gtk2_ardour/ui_config.h:47,
                 from ../gtk2_ardour/note_base.h:33,
                 from ../gtk2_ardour/hit.h:24,
                 from ../gtk2_ardour/hit.cc:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1742/1835] Compiling gtk2_ardour/time_fx_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/meterbridge.cc:40:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/accelmap.h:28,
                 from ../gtk2_ardour/meterbridge.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/meterbridge.cc:29:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1743/1835] Compiling gtk2_ardour/midi_cut_buffer.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/midi_region_operations_box.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/midi_region_operations_box.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/midi_region_operations_box.cc:24:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1744/1835] Compiling gtk2_ardour/session_import_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/public_editor.cc:21:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/public_editor.h:41:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../gtk2_ardour/public_editor.h:39:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/pango-1.0/pango/pango-coverage.h:25,
                 from /usr/include/pango-1.0/pango/pango-font.h:25,
                 from /usr/include/pango-1.0/pango/pango-attributes.h:25,
                 from /usr/include/pango-1.0/pango/pango.h:25,
                 from ../libs/tk/ydk/ydk/gdk/gdktypes.h:37,
                 from ../gtk2_ardour/public_editor.h:40:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/public_editor.h:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1745/1835] Compiling gtk2_ardour/video_monitor.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_regions.cc:30:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/widgets/widgets/choice.h:26,
                 from ../gtk2_ardour/editor_regions.cc:32:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/command.h:29,
                 from ../libs/temporal/temporal/domain_swap.h:24,
                 from ../libs/ardour/ardour/region.h:30,
                 from ../gtk2_ardour/editor_regions.cc:29:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/choice.h:27:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1746/1835] Compiling gtk2_ardour/ardour_dialog.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/gui_thread.h:21,
                 from ../gtk2_ardour/transcode_ffmpeg.cc:34:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../gtk2_ardour/transcode_ffmpeg.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/transcode_ffmpeg.cc:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1747/1835] Compiling gtk2_ardour/velocity_ghost_region.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../gtk2_ardour/vst_plugin_ui.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm.h:27,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../gtk2_ardour/vst_plugin_ui.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from /usr/include/glibmm-2.4/glibmm.h:103,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:89:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:94:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1748/1835] Compiling gtk2_ardour/pingback.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/route_params_ui.cc:31:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/route_params_ui.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../gtk2_ardour/route_params_ui.cc:26:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1749/1835] Compiling gtk2_ardour/patch_change_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_record_axis.h:43,
                 from ../gtk2_ardour/recorder_group_tabs.cc:21:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:31,
                 from ../gtk2_ardour/group_tabs.h:25,
                 from ../gtk2_ardour/recorder_group_tabs.h:22,
                 from ../gtk2_ardour/recorder_group_tabs.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/recorder_ui.h:45,
                 from ../gtk2_ardour/recorder_group_tabs.cc:20:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1750/1835] Compiling gtk2_ardour/startup_fsm.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/io_selector.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/port_matrix.h:27,
                 from ../gtk2_ardour/io_selector.h:26,
                 from ../gtk2_ardour/io_selector.cc:38:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from ../gtk2_ardour/io_selector.cc:27:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1751/1835] Compiling gtk2_ardour/lxvst_plugin_ui.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/automation_line.cc:61:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../gtk2_ardour/automation_line.h:44,
                 from ../gtk2_ardour/automation_line.cc:57:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/command.h:29,
                 from ../libs/pbd/pbd/memento_command.h:29,
                 from ../gtk2_ardour/automation_line.cc:42:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/gui_thread.h:21,
                 from ../gtk2_ardour/automation_line.cc:59:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/public_editor.h:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1752/1835] Compiling gtk2_ardour/step_entry.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/ardour_ui_startup.cc:66:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/ardour_ui_startup.cc:51:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../gtk2_ardour/ardour_ui_startup.cc:48:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1753/1835] Compiling gtk2_ardour/session_archive_dialog.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/aboutdialog.h:31,
                 from ../gtk2_ardour/about.h:23,
                 from ../gtk2_ardour/about.cc:41:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/about.cc:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1754/1835] Compiling gtk2_ardour/missing_plugin_dialog.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/tempo_map_change.h:23,
                 from ../gtk2_ardour/tempo_map_change.cc:20:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/public_editor.h:41:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/convert.h:29,
                 from ../libs/pbd/pbd/i18n.h:23,
                 from ../gtk2_ardour/tempo_map_change.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/temporal/temporal/tempo.h:31,
                 from ../gtk2_ardour/tempo_map_change.h:21:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/public_editor.h:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1755/1835] Compiling headless/misc.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/shuttle_control.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../gtk2_ardour/shuttle_control.cc:38:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/ardour/ardour/ardour.h:34,
                 from ../gtk2_ardour/shuttle_control.cc:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/shuttle_control.cc:39:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/shuttle_control.cc:42:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1756/1835] Compiling headless/load_session.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_manager.h:39,
                 from ../gtk2_ardour/mixer_ui.cc:58:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/accelmap.h:28,
                 from ../gtk2_ardour/mixer_ui.cc:40:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../gtk2_ardour/mixer_ui.cc:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:31,
                 from ../gtk2_ardour/mixer_ui.cc:41:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/mixer_ui.cc:43:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/shared_ptr.h:53,
                 from /usr/include/c++/14.2.0/memory:80,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:33,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:30:
In constructor 'std::__shared_count<_Lp>::__shared_count(_Ptr) [with _Ptr = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >*; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_mutex]',
    inlined from 'std::__shared_count<_Lp>::__shared_count(_Ptr, std::false_type) [with _Ptr = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >*; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_mutex]' at /usr/include/c++/14.2.0/bits/shared_ptr_base.h:926:22,
    inlined from 'std::__shared_ptr<_Tp, _Lp>::__shared_ptr(_Yp*) [with _Yp = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; <template-parameter-2-2> = void; _Tp = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_mutex]' at /usr/include/c++/14.2.0/bits/shared_ptr_base.h:1470:17,
    inlined from 'std::shared_ptr<_Tp>::shared_ptr(_Yp*) [with _Yp = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; <template-parameter-2-2> = void; _Tp = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >]' at /usr/include/c++/14.2.0/bits/shared_ptr.h:213:46,
    inlined from 'void Mixer_UI::fan_out(std::weak_ptr<ARDOUR::Route>, bool, bool)' at ../gtk2_ardour/mixer_ui.cc:1083:46:
/usr/include/c++/14.2.0/bits/shared_ptr_base.h:919:15: warning: 'void operator delete(void*)' called on unallocated object 'to_group' [-Wfree-nonheap-object]
  919 |               delete __p;
      |               ^~~~~~~~~~
../gtk2_ardour/mixer_ui.cc: In member function 'void Mixer_UI::fan_out(std::weak_ptr<ARDOUR::Route>, bool, bool)':
../gtk2_ardour/mixer_ui.cc:1061:19: note: declared here
 1061 |         RouteList to_group;
      |                   ^~~~~~~~

[1757/1835] Compiling luasession/luasession.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/nsm.cc:27:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtkapplication.h:27,
                 from ../libs/gtkmm2ext/gtkmm2ext/application.h:27,
                 from ../gtk2_ardour/nsm.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1758/1835] Compiling session_utils/common.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../gtk2_ardour/route_time_axis.cc:56:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:31,
                 from ../gtk2_ardour/route_time_axis.cc:40:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menu.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/route_time_axis.cc:42:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1759/1835] Compiling session_utils/copy-mixer.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/automation_controller.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/widgets/widgets/ardour_button.h:26,
                 from ../gtk2_ardour/automation_controller.cc:36:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/automation_controller.cc:29:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ydkmm/ydkmm/gdkmm.h:34,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm.h:92,
                 from ../libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h:25,
                 from ../libs/widgets/widgets/ardour_ctrl_base.h:32,
                 from ../libs/widgets/widgets/ardour_knob.h:23,
                 from ../gtk2_ardour/automation_controller.cc:37:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1760/1835] Compiling session_utils/common.cc
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/control_point_dialog.cc:20:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1761/1835] Compiling session_utils/export.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/lua_script_manager.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/lua_script_manager.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/lua_script_manager.cc:24:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1762/1835] Compiling session_utils/common.cc
[1763/1835] Compiling session_utils/new_empty_session.cc
[1764/1835] Compiling session_utils/common.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/rec_info_box.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/rec_info_box.cc:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/session.h:52:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1765/1835] Compiling session_utils/new_session.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/editor.h:72,
                 from ../gtk2_ardour/editor_section_box.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/editor.h:48:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1766/1835] Compiling libs/fst/vst3-scanner.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/midi_clip_editor.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../gtk2_ardour/midi_clip_editor.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/midi_clip_editor.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1767/1835] Compiling libs/fst/vst2-scanner.cc
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_manager.h:39,
                 from ../gtk2_ardour/instrument_selector.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/instrument_selector.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/convert.h:29,
                 from ../gtk2_ardour/instrument_selector.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/ardour/ardour/types.h:54,
                 from ../libs/ardour/ardour/plugin_manager.h:38:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../gtk2_ardour/instrument_selector.h:24,
                 from ../gtk2_ardour/instrument_selector.cc:27:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1768/1835] Compiling libs/vfork/exec_wrapper.c
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_group_dialog.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/table.h:30,
                 from ../gtk2_ardour/route_group_dialog.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/controllable.h:31,
                 from ../libs/ardour/ardour/route_group.h:32,
                 from ../gtk2_ardour/route_group_dialog.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/route_group_dialog.cc:28:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1769/1835] Compiling libs/ardouralsautil/reserve.c
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/selection.cc:45:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/xfade_curve.h:24,
                 from ../gtk2_ardour/audio_region_view.h:37,
                 from ../gtk2_ardour/selection.cc:39:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/selection.cc:29:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/gui_thread.h:21,
                 from ../gtk2_ardour/selection.cc:41:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/time_axis_view.h:39,
                 from ../gtk2_ardour/automation_time_axis.h:44,
                 from ../gtk2_ardour/stripable_time_axis.h:22,
                 from ../gtk2_ardour/route_time_axis.h:48,
                 from ../gtk2_ardour/audio_time_axis.h:43,
                 from ../gtk2_ardour/track_view_list.h:29:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1770/1835] Compiling libs/ardouralsautil/request_device.c
[1771/1835] Linking build/libs/vfork/ardour-exec-wrapper
[1772/1835] Linking build/libs/ardouralsautil/ardour-request-device
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_manager.h:39,
                 from ../gtk2_ardour/region_editor.cc:37:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:34,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/listviewtext.h:21,
                 from ../gtk2_ardour/region_editor.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:9:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:33:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../gtk2_ardour/processor_box.h:39,
                 from ../gtk2_ardour/monitor_section.h:41,
                 from ../gtk2_ardour/mixer_ui.h:61,
                 from ../gtk2_ardour/region_editor.cc:50:
../libs/gtkmm2ext/gtkmm2ext/dndvbox.h: In instantiation of 'void Gtkmm2ext::DnDVBox<T>::drag_data_received(const Glib::RefPtr<Gdk::DragContext>&, int, int, const Gtk::SelectionData&, guint, guint) [with T = RegionEditor::RegionFxEntry; guint = unsigned int]':
../libs/gtkmm2ext/gtkmm2ext/dndvbox.h:87:56:   required from 'Gtkmm2ext::DnDVBox<T>::DnDVBox(std::__cxx11::list<Gtk::TargetEntry>) [with T = RegionEditor::RegionFxEntry]'
   87 |                 signal_drag_data_received().connect (mem_fun (*this, &DnDVBox::drag_data_received));
      |                                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/region_editor.cc:536:4:   required from here
  536 |         , _display (drop_targets ())
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/gtkmm2ext/gtkmm2ext/dndvbox.h:398:38: warning: cast from 'const guchar*' {aka 'const unsigned char*'} to 'RegionEditor::RegionFxEntry* const*' increases required alignment of target type [-Wcast-align]
  398 |                         T* child = *((T * const *) selection_data.get_data());
      |                                     ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../gtk2_ardour/ui_config.h:43,
                 from ../gtk2_ardour/pingback.cc:43:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/glib/gprintf.h:23,
                 from /usr/include/glib-2.0/glib/gstdio.h:24,
                 from ../libs/pbd/pbd/gstdio_compat.h:29,
                 from ../gtk2_ardour/pingback.cc:32:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/menushell.h:32,
                 from ../gtk2_ardour/utils.h:40,
                 from ../gtk2_ardour/ui_config.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from /usr/include/glibmm-2.4/glibmm/miscutils.h:23,
                 from ../gtk2_ardour/pingback.cc:33:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/trigger_page.cc:44:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:30,
                 from ../gtk2_ardour/trigger_page.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/plugin_pin_dialog.cc:39:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/plugin_pin_dialog.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/plugin_pin_dialog.cc:30:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../gtk2_ardour/midi_time_axis.cc:66:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/separator.h:31,
                 from ../gtk2_ardour/midi_time_axis.cc:36:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/separator.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/midi_time_axis.cc:37:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/ardour/ardour/midi_playlist.h:38,
                 from ../gtk2_ardour/midi_time_axis.cc:57:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:30,
                 from ../gtk2_ardour/missing_plugin_dialog.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/plugin_presets_ui.cc:24:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/plugin_presets_ui.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/plugin_presets_ui.cc:22:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/export_format_dialog.cc:28:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:32,
                 from ../gtk2_ardour/export_format_dialog.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/frame.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/export_format_dialog.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/session_import_dialog.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/session_import_dialog.cc:24:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/tempo_curve.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/canvas/canvas/item.h:26,
                 from ../libs/canvas/canvas/rectangle.h:24,
                 from ../gtk2_ardour/tempo_curve.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/temporal/temporal/tempo.h:31,
                 from ../gtk2_ardour/tempo_curve.cc:22:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../libs/canvas/canvas/canvas.h:32,
                 from ../gtk2_ardour/tempo_curve.cc:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/public_editor.h:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_view_list.cc:20:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/colorselection.h:30,
                 from ../gtk2_ardour/route_ui.h:33:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/id.h:28,
                 from ../libs/ardour/ardour/types.h:54,
                 from ../gtk2_ardour/track_view_list.h:23:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/time_axis_view.h:39,
                 from ../gtk2_ardour/automation_time_axis.h:44,
                 from ../gtk2_ardour/stripable_time_axis.h:22,
                 from ../gtk2_ardour/route_time_axis.h:48,
                 from ../gtk2_ardour/audio_time_axis.h:43,
                 from ../gtk2_ardour/track_view_list.h:29:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/insert_remove_time_dialog.h:20,
                 from ../gtk2_ardour/insert_remove_time_dialog.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/table.h:30,
                 from ../gtk2_ardour/insert_remove_time_dialog.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/table.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from /usr/include/glibmm-2.4/glibmm/sarray.h:25,
                 from /usr/include/glibmm-2.4/glibmm/containers.h:23,
                 from /usr/include/glibmm-2.4/glibmm/helperlist.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/table.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/comboboxtext.h:24,
                 from ../gtk2_ardour/insert_remove_time_dialog.cc:22:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_insert.h:41,
                 from ../gtk2_ardour/loudness_dialog.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../gtk2_ardour/loudness_dialog.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/loudness_dialog.cc:21:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/duplicate_routes_dialog.cc:22:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/duplicate_routes_dialog.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_manager.h:39,
                 from ../gtk2_ardour/plugin_scan_dialog.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/progressbar.h:31,
                 from ../gtk2_ardour/plugin_scan_dialog.cc:25:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/progressbar.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65,
                 from ../gtk2_ardour/plugin_scan_dialog.cc:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/big_transport_window.cc:21:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/big_transport_window.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/auditioner.h:33,
                 from ../gtk2_ardour/trigger_clip_picker.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/trigger_clip_picker.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_mouse.cc:56:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/bindings.h:30,
                 from ../gtk2_ardour/editor_mouse.cc:44:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/transmitter.h:25,
                 from ../libs/pbd/pbd/error.h:22,
                 from ../gtk2_ardour/editor_mouse.cc:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/editor_mouse.cc:45:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/vst_plugin.h:26,
                 from ../libs/ardour/ardour/lxvst_plugin.h:24,
                 from ../gtk2_ardour/lxvst_plugin_ui.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/lxvst_plugin_ui.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:39,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:38:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../gtk2_ardour/plugin_ui.h:44,
                 from ../gtk2_ardour/vst_plugin_ui.h:22,
                 from ../gtk2_ardour/lxvst_plugin_ui.h:24,
                 from ../gtk2_ardour/lxvst_plugin_ui.cc:25:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../headless/load_session.cc:39:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_pt_import.cc:45:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/ardour_ui.h:52,
                 from ../gtk2_ardour/editor_pt_import.cc:50:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/pthread_utils.h:49,
                 from ../gtk2_ardour/editor_pt_import.cc:28:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/video_image_frame.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/video_image_frame.cc:23:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/temporal/temporal/tempo.h:31,
                 from ../libs/ardour/ardour/tempo.h:4,
                 from ../gtk2_ardour/video_image_frame.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/control_point.cc:23:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/colors.h:25,
                 from ../libs/canvas/canvas/types.h:32,
                 from ../gtk2_ardour/automation_line.h:44,
                 from ../gtk2_ardour/control_point.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/tk/ydk/ydk/gdk/gdktypes.h:36,
                 from ../libs/tk/ydk/ydk/gdk/gdkcolor.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkevents.h:34,
                 from ../gtk2_ardour/control_point.h:26,
                 from ../gtk2_ardour/control_point.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/public_editor.h:41:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/pango-1.0/pango/pango-coverage.h:25,
                 from /usr/include/pango-1.0/pango/pango-font.h:25,
                 from /usr/include/pango-1.0/pango/pango-attributes.h:25,
                 from /usr/include/pango-1.0/pango/pango.h:25,
                 from ../libs/tk/ydk/ydk/gdk/gdktypes.h:37:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/public_editor.h:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/export_timespan_selector.cc:33:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/alignment.h:31,
                 from ../gtk2_ardour/audio_clock.h:34,
                 from ../gtk2_ardour/export_timespan_selector.h:31,
                 from ../gtk2_ardour/export_timespan_selector.cc:39:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/location.h:36,
                 from ../gtk2_ardour/export_timespan_selector.cc:31:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/combobox.h:35,
                 from ../gtk2_ardour/export_timespan_selector.h:40:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/session_archive_dialog.h:29,
                 from ../gtk2_ardour/session_archive_dialog.cc:26:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/session_archive_dialog.cc:19:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../session_utils/common.h:23,
                 from ../session_utils/new_empty_session.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../session_utils/common.h:23,
                 from ../session_utils/common.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../session_utils/common.h:23,
                 from ../session_utils/common.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../session_utils/common.h:23,
                 from ../session_utils/copy-mixer.cc:30:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/editor.h:72,
                 from ../gtk2_ardour/time_fx_dialog.cc:38:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/time_fx_dialog.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/patch_change_dialog.cc:22:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/port_matrix.cc:37:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/scrolledwindow.h:31,
                 from ../gtk2_ardour/port_matrix.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/scrolledwindow.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/listhandle.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/port_matrix.cc:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../session_utils/common.h:23,
                 from ../session_utils/common.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/generic_pluginui.cc:52:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/separator.h:31,
                 from ../gtk2_ardour/generic_pluginui.cc:38:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/separator.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/generic_pluginui.cc:58:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../session_utils/common.h:23,
                 from ../session_utils/new_session.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/mixer_strip.cc:63:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/mixer_strip.cc:38:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/mixer_strip.cc:72:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/ardour_dialog.cc:29:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/bin.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/window.h:33,
                 from ../gtk2_ardour/ardour_dialog.h:25,
                 from ../gtk2_ardour/ardour_dialog.cc:28:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../libs/tk/ydk/ydk/gdk/gdktypes.h:36,
                 from ../libs/tk/ydk/ydk/gdk/gdkcolor.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkevents.h:34,
                 from ../libs/gtkmm2ext/gtkmm2ext/doi.h:28,
                 from ../gtk2_ardour/ardour_dialog.cc:26:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/pango-1.0/pango/pango-coverage.h:25,
                 from /usr/include/pango-1.0/pango/pango-font.h:25,
                 from /usr/include/pango-1.0/pango/pango-attributes.h:25,
                 from /usr/include/pango-1.0/pango/pango.h:25,
                 from ../libs/tk/ydk/ydk/gdk/gdktypes.h:37:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../session_utils/common.h:23,
                 from ../session_utils/common.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/keyboard.h:32,
                 from ../gtk2_ardour/keyeditor.cc:56:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/accelkey.h:25,
                 from ../gtk2_ardour/keyeditor.cc:36:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../gtk2_ardour/keyeditor.cc:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/label.h:30,
                 from ../gtk2_ardour/keyeditor.cc:38:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/keyeditor.cc:40:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../luasession/luasession.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/meter_strip.cc:28:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../gtk2_ardour/meter_strip.cc:36:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/session.h:52:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/meter_strip.cc:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/midi_automation_list_binder.h:24,
                 from ../gtk2_ardour/velocity_ghost_region.cc:25:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/gtkmm2ext/gtkmm2ext/keyboard.h:30,
                 from ../gtk2_ardour/velocity_ghost_region.cc:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/command.h:29,
                 from ../libs/pbd/pbd/memento_command.h:29,
                 from ../gtk2_ardour/velocity_ghost_region.cc:21:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/velocity_ghost_region.cc:31:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/editor_canvas.cc:46:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/container.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:35,
                 from ../gtk2_ardour/editor_canvas.cc:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:8,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:33:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/pangomm-1.4/pangomm/fontdescription.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../session_utils/common.h:23,
                 from ../session_utils/export.cc:24:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/startup_fsm.cc:38:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../gtk2_ardour/startup_fsm.cc:21:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/startup_fsm.cc:24:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1773/1835] Linking build/libs/fst/ardour-vst-scanner
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/foldback_strip.cc:28:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../gtk2_ardour/foldback_strip.cc:33:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:30,
                 from ../libs/ardour/ardour/audioengine.h:38,
                 from ../gtk2_ardour/foldback_strip.cc:19:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/foldback_strip.cc:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/track_view_list.h:28,
                 from ../gtk2_ardour/track_selection.h:24,
                 from ../gtk2_ardour/selection.h:41,
                 from ../gtk2_ardour/public_editor.h:65,
                 from ../gtk2_ardour/video_monitor.cc:30:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:40,
                 from ../libs/gtkmm2ext/gtkmm2ext/gui_thread.h:23,
                 from ../gtk2_ardour/gui_thread.h:21,
                 from ../gtk2_ardour/video_monitor.cc:27:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/glibmm-2.4/glibmm/pattern.h:26,
                 from ../libs/pbd/pbd/file_utils.h:27,
                 from ../gtk2_ardour/video_monitor.cc:23:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:48,
                 from ../libs/gtkmm2ext/gtkmm2ext/gtk_ui.h:38:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/widgets/widgets/tabbable.h:26,
                 from ../gtk2_ardour/public_editor.h:61:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

[1774/1835] Linking build/libs/fst/ardour-vst3-scanner
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_manager.h:39,
                 from ../gtk2_ardour/ardour_ui.cc:98:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/accelmap.h:28,
                 from ../gtk2_ardour/ardour_ui.cc:58:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from ../gtk2_ardour/ardour_ui.cc:55:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/ardour_ui.cc:59:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/ardour_ui.cc:60:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../gtk2_ardour/ardour_ui.cc:92:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../libs/lua/LuaBridge/LuaBridge.h:151,
                 from ../gtk2_ardour/ardour_ui.cc:112:
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::PluginInfo>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::PluginInfo>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::PluginInfo>; T = std::shared_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/LuaRef.h:181:23:   required from 'luabridge::LuaRef::Proxy& luabridge::LuaRef::Proxy::operator=(T) [with T = std::shared_ptr<ARDOUR::PluginInfo>]'
  181 |       Stack <T>::push (m_L, v);
      |       ~~~~~~~~~~~~~~~~^~~~~~~~
../gtk2_ardour/ardour_ui.cc:2448:63:   required from here
 2448 |         args["instrument"] = add_route_dialog->requested_instrument ();
      |                                                                      ^
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::PluginInfo>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/route_ui.h:42,
                 from ../gtk2_ardour/midi_time_axis.h:43,
                 from ../gtk2_ardour/step_entry.cc:34:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/actions.h:27,
                 from ../gtk2_ardour/step_entry.cc:26:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/glibmm-2.4/glibmm/pattern.h:26,
                 from ../libs/pbd/pbd/file_utils.h:27,
                 from ../gtk2_ardour/step_entry.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/context.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:30:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../gtk2_ardour/time_axis_view.h:39,
                 from ../gtk2_ardour/automation_time_axis.h:44,
                 from ../gtk2_ardour/stripable_time_axis.h:22,
                 from ../gtk2_ardour/route_time_axis.h:48,
                 from ../gtk2_ardour/midi_time_axis.h:45:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_drag.cc:51:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
../gtk2_ardour/editor_drag.cc:1672:2: warning: #warning paul fix this code [-Wcpp]
 1672 | #warning paul fix this code
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/editor_drag.cc:38:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/basename.h:23,
                 from ../gtk2_ardour/editor_drag.cc:34:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/threads.h:31,
                 from ../libs/pbd/pbd/signals.h:36,
                 from ../libs/pbd/pbd/command.h:29,
                 from ../libs/pbd/pbd/memento_command.h:29,
                 from ../gtk2_ardour/editor_drag.cc:35:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../gtk2_ardour/editor_drag.cc: In constructor 'SelectionMarkerDrag::SelectionMarkerDrag(Editor*, ArdourCanvas::Item*)':
../gtk2_ardour/editor_drag.cc:5850:14: warning: unused variable 'ok' [-Wunused-variable]
 5850 |         bool ok = _editor->get_selection_extents (_start_at_start, _end_at_start);
      |              ^~
../gtk2_ardour/editor_drag.cc: In member function 'virtual void MarkerDrag::finished(GdkEvent*, bool)':
../gtk2_ardour/editor_drag.cc:4686:83: warning: 'do_locate' may be used uninitialized [-Wmaybe-uninitialized]
 4686 |                 if (do_locate && !_editor->session()->config.get_external_sync () && (_editor->edit_point() != Editing::EditAtSelectedMarker)) {
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/editor_drag.cc:4674:22: note: 'do_locate' was declared here
 4674 |                 bool do_locate;
      |                      ^~~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/io_plug.h:31,
                 from ../gtk2_ardour/recorder_ui.cc:34:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/pixbuf.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:24,
                 from ../gtk2_ardour/recorder_ui.cc:24:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/iconset.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/misc.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/pangomm-1.4/pangomm/font.h:29,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/drawable.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_ops.cc:76:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/dialog.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:31,
                 from ../gtk2_ardour/editor_ops.cc:41:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/messagedialog.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/editor_ops.cc:53:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../gtk2_ardour/editor_ops.cc: In member function 'void Editor::bounce_range_selection(BounceTarget, bool)':
../gtk2_ardour/editor_ops.cc:4514:56: warning: 'include_track_name' may be used uninitialized [-Wmaybe-uninitialized]
 4514 |                         r = rtv->track()->bounce_range (start.samples(), (start+cnt).samples(), itt, std::shared_ptr<Processor>(), false, bounce_name, include_track_name);
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/editor_ops.cc:4360:16: note: 'include_track_name' was declared here
 4360 |         bool   include_track_name;
      |                ^~~~~~~~~~~~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_manager.h:39,
                 from ../gtk2_ardour/luainstance.cc:36:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/window.h:30,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/event.h:28,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:38,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/bindings.h:30,
                 from ../gtk2_ardour/luainstance.cc:29:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/pango-1.0/pango/pango-coverage.h:25,
                 from /usr/include/pango-1.0/pango/pango-font.h:25,
                 from /usr/include/pango-1.0/pango/pango-attributes.h:25,
                 from /usr/include/pango-1.0/pango/pango.h:25,
                 from /usr/include/pango-1.0/pango/pangocairo.h:25,
                 from ../gtk2_ardour/luainstance.cc:24:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../gtk2_ardour/luainstance.cc:33:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65,
                 from ../gtk2_ardour/luainstance.cc:45:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h: At global scope:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/lua/LuaBridge/LuaBridge.h:151,
                 from ../gtk2_ardour/luainstance.cc:42:
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = LuaCairo::ImageSurface]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = LuaCairo::ImageSurface]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = LuaCairo::ImageSurface; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<Cairo::Format, luabridge::TypeList<int, luabridge::TypeList<int, void> > >; T = LuaCairo::ImageSurface; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(Cairo::Format, int, int); T = LuaCairo::ImageSurface]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:657:56:   required from here
  589 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
  590 |                 .beginNamespace ("Cairo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~                             
  591 |                 .beginClass <Cairo::Context> ("Context")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  592 |                 .addFunction ("save", &Cairo::Context::save)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  593 |                 .addFunction ("restore", &Cairo::Context::restore)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  594 |                 .addFunction ("set_operator", &Cairo::Context::set_operator)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  595 |                 //.addFunction ("set_source", &Cairo::Context::set_operator) // needs RefPtr
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  596 |                 .addFunction ("set_source_rgb", &Cairo::Context::set_source_rgb)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  597 |                 .addFunction ("set_source_rgba", &Cairo::Context::set_source_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  598 |                 .addFunction ("set_line_width", &Cairo::Context::set_line_width)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  599 |                 .addFunction ("set_line_cap", &Cairo::Context::set_line_cap)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  600 |                 .addFunction ("set_line_join", &Cairo::Context::set_line_join)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  601 |                 .addFunction ("set_dash", (void (Cairo::Context::*)(const std::vector<double>&, double))&Cairo::Context::set_dash)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  602 |                 .addFunction ("unset_dash", &Cairo::Context::unset_dash)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  603 |                 .addFunction ("translate", &Cairo::Context::translate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  604 |                 .addFunction ("scale", &Cairo::Context::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  605 |                 .addFunction ("rotate", &Cairo::Context::rotate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  606 |                 .addFunction ("begin_new_path", &Cairo::Context::begin_new_path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  607 |                 .addFunction ("begin_new_sub_path", &Cairo::Context::begin_new_sub_path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  608 |                 .addFunction ("move_to", &Cairo::Context::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  609 |                 .addFunction ("line_to", &Cairo::Context::line_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  610 |                 .addFunction ("curve_to", &Cairo::Context::curve_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  611 |                 .addFunction ("arc", &Cairo::Context::arc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  612 |                 .addFunction ("arc_negative", &Cairo::Context::arc_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  613 |                 .addFunction ("rel_move_to", &Cairo::Context::rel_move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  614 |                 .addFunction ("rel_line_to", &Cairo::Context::rel_line_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  615 |                 .addFunction ("rel_curve_to", &Cairo::Context::rel_curve_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  616 |                 .addFunction ("rectangle", (void (Cairo::Context::*)(double, double, double, double))&Cairo::Context::rectangle)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  617 |                 .addFunction ("close_path", &Cairo::Context::close_path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  618 |                 .addFunction ("paint", &Cairo::Context::paint)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  619 |                 .addFunction ("paint_with_alpha", &Cairo::Context::paint_with_alpha)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  620 |                 .addFunction ("stroke", &Cairo::Context::stroke)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  621 |                 .addFunction ("stroke_preserve", &Cairo::Context::stroke_preserve)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |                 .addFunction ("fill", &Cairo::Context::fill)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  623 |                 .addFunction ("fill_preserve", &Cairo::Context::fill_preserve)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  624 |                 .addFunction ("reset_clip", &Cairo::Context::reset_clip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  625 |                 .addFunction ("clip", &Cairo::Context::clip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  626 |                 .addFunction ("clip_preserve", &Cairo::Context::clip_preserve)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  627 |                 .addFunction ("set_font_size", &Cairo::Context::set_font_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  628 |                 .addFunction ("show_text", &Cairo::Context::show_text)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  629 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
  630 |                 /* enums */
      |                 ~~~~~~~~~~~                                           
  631 |                 // LineCap, LineJoin, Operator
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
  632 |                 .beginNamespace ("LineCap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
  633 |                 .addConst ("Butt", CAIRO_LINE_CAP_BUTT)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  634 |                 .addConst ("Round", CAIRO_LINE_CAP_ROUND)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  635 |                 .addConst ("Square", CAIRO_LINE_CAP_SQUARE)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  636 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                      
  637 | 
      |                                                                       
  638 |                 .beginNamespace ("LineJoin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  639 |                 .addConst ("Miter", CAIRO_LINE_JOIN_MITER)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  640 |                 .addConst ("Round", CAIRO_LINE_JOIN_ROUND)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  641 |                 .addConst ("Bevel", CAIRO_LINE_JOIN_BEVEL)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  642 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                      
  643 | 
      |                                                                       
  644 |                 .beginNamespace ("Operator")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  645 |                 .addConst ("Clear", CAIRO_OPERATOR_CLEAR)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  646 |                 .addConst ("Source", CAIRO_OPERATOR_SOURCE)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  647 |                 .addConst ("Over", CAIRO_OPERATOR_OVER)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  648 |                 .addConst ("Add", CAIRO_OPERATOR_ADD)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  649 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                      
  650 | 
      |                                                                       
  651 |                 .beginNamespace ("Format")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                            
  652 |                 .addConst ("ARGB32", CAIRO_FORMAT_ARGB32)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  653 |                 .addConst ("RGB24", CAIRO_FORMAT_RGB24)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  654 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                      
  655 | 
      |                                                                       
  656 |                 .beginClass <LuaCairo::ImageSurface> ("ImageSurface")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  657 |                 .addConstructor <void (*) (Cairo::Format, int, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'LuaCairo::ImageSurface*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = LuaCairo::PangoLayout]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = LuaCairo::PangoLayout]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = LuaCairo::PangoLayout; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<Cairo::Context*, luabridge::TypeList<std::__cxx11::basic_string<char>, void> >; T = LuaCairo::PangoLayout; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(Cairo::Context*, std::__cxx11::basic_string<char>); T = LuaCairo::PangoLayout]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:667:61:   required from here
  589 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                  
  590 |                 .beginNamespace ("Cairo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~                                  
  591 |                 .beginClass <Cairo::Context> ("Context")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
  592 |                 .addFunction ("save", &Cairo::Context::save)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  593 |                 .addFunction ("restore", &Cairo::Context::restore)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  594 |                 .addFunction ("set_operator", &Cairo::Context::set_operator)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  595 |                 //.addFunction ("set_source", &Cairo::Context::set_operator) // needs RefPtr
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  596 |                 .addFunction ("set_source_rgb", &Cairo::Context::set_source_rgb)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  597 |                 .addFunction ("set_source_rgba", &Cairo::Context::set_source_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  598 |                 .addFunction ("set_line_width", &Cairo::Context::set_line_width)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  599 |                 .addFunction ("set_line_cap", &Cairo::Context::set_line_cap)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  600 |                 .addFunction ("set_line_join", &Cairo::Context::set_line_join)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  601 |                 .addFunction ("set_dash", (void (Cairo::Context::*)(const std::vector<double>&, double))&Cairo::Context::set_dash)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  602 |                 .addFunction ("unset_dash", &Cairo::Context::unset_dash)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  603 |                 .addFunction ("translate", &Cairo::Context::translate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  604 |                 .addFunction ("scale", &Cairo::Context::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  605 |                 .addFunction ("rotate", &Cairo::Context::rotate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  606 |                 .addFunction ("begin_new_path", &Cairo::Context::begin_new_path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  607 |                 .addFunction ("begin_new_sub_path", &Cairo::Context::begin_new_sub_path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  608 |                 .addFunction ("move_to", &Cairo::Context::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  609 |                 .addFunction ("line_to", &Cairo::Context::line_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  610 |                 .addFunction ("curve_to", &Cairo::Context::curve_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  611 |                 .addFunction ("arc", &Cairo::Context::arc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  612 |                 .addFunction ("arc_negative", &Cairo::Context::arc_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  613 |                 .addFunction ("rel_move_to", &Cairo::Context::rel_move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  614 |                 .addFunction ("rel_line_to", &Cairo::Context::rel_line_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  615 |                 .addFunction ("rel_curve_to", &Cairo::Context::rel_curve_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  616 |                 .addFunction ("rectangle", (void (Cairo::Context::*)(double, double, double, double))&Cairo::Context::rectangle)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  617 |                 .addFunction ("close_path", &Cairo::Context::close_path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  618 |                 .addFunction ("paint", &Cairo::Context::paint)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  619 |                 .addFunction ("paint_with_alpha", &Cairo::Context::paint_with_alpha)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  620 |                 .addFunction ("stroke", &Cairo::Context::stroke)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  621 |                 .addFunction ("stroke_preserve", &Cairo::Context::stroke_preserve)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |                 .addFunction ("fill", &Cairo::Context::fill)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  623 |                 .addFunction ("fill_preserve", &Cairo::Context::fill_preserve)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  624 |                 .addFunction ("reset_clip", &Cairo::Context::reset_clip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  625 |                 .addFunction ("clip", &Cairo::Context::clip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  626 |                 .addFunction ("clip_preserve", &Cairo::Context::clip_preserve)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  627 |                 .addFunction ("set_font_size", &Cairo::Context::set_font_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  628 |                 .addFunction ("show_text", &Cairo::Context::show_text)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  629 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                               
  630 |                 /* enums */
      |                 ~~~~~~~~~~~                                                
  631 |                 // LineCap, LineJoin, Operator
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
  632 |                 .beginNamespace ("LineCap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
  633 |                 .addConst ("Butt", CAIRO_LINE_CAP_BUTT)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  634 |                 .addConst ("Round", CAIRO_LINE_CAP_ROUND)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  635 |                 .addConst ("Square", CAIRO_LINE_CAP_SQUARE)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  636 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                           
  637 | 
      |                                                                            
  638 |                 .beginNamespace ("LineJoin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
  639 |                 .addConst ("Miter", CAIRO_LINE_JOIN_MITER)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  640 |                 .addConst ("Round", CAIRO_LINE_JOIN_ROUND)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  641 |                 .addConst ("Bevel", CAIRO_LINE_JOIN_BEVEL)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  642 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                           
  643 | 
      |                                                                            
  644 |                 .beginNamespace ("Operator")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
  645 |                 .addConst ("Clear", CAIRO_OPERATOR_CLEAR)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  646 |                 .addConst ("Source", CAIRO_OPERATOR_SOURCE)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  647 |                 .addConst ("Over", CAIRO_OPERATOR_OVER)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  648 |                 .addConst ("Add", CAIRO_OPERATOR_ADD)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
  649 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                           
  650 | 
      |                                                                            
  651 |                 .beginNamespace ("Format")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                 
  652 |                 .addConst ("ARGB32", CAIRO_FORMAT_ARGB32)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  653 |                 .addConst ("RGB24", CAIRO_FORMAT_RGB24)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  654 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                           
  655 | 
      |                                                                            
  656 |                 .beginClass <LuaCairo::ImageSurface> ("ImageSurface")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  657 |                 .addConstructor <void (*) (Cairo::Format, int, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  658 |                 .addFunction ("set_as_source", &LuaCairo::ImageSurface::set_as_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addFunction ("context", &LuaCairo::ImageSurface::context)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  660 |                 .addFunction ("get_stride", &LuaCairo::ImageSurface::get_stride)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  661 |                 .addFunction ("get_width", &LuaCairo::ImageSurface::get_width)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  662 |                 .addFunction ("get_height", &LuaCairo::ImageSurface::get_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  663 |                 //.addFunction ("get_data", &LuaCairo::ImageSurface::get_data) // uint8_t* array is n/a
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                               
  665 | 
      |                                                                            
  666 |                 .beginClass <LuaCairo::PangoLayout> ("PangoLayout")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  667 |                 .addConstructor <void (*) (Cairo::Context*, std::string)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'LuaCairo::PangoLayout*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = LuaDialog::Message]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = LuaDialog::Message]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = LuaDialog::Message; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<const std::__cxx11::basic_string<char>&, luabridge::TypeList<const std::__cxx11::basic_string<char>&, luabridge::TypeList<LuaDialog::Message::MessageType, luabridge::TypeList<LuaDialog::Message::ButtonType, void> > > >; T = LuaDialog::Message; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&, LuaDialog::Message::MessageType, LuaDialog::Message::ButtonType); T = LuaDialog::Message]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:737:136:   required from here
  733 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                             
  734 |                 .beginNamespace ("LuaDialog")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                         
  735 | 
      |                                                                                                                                                       
  736 |                 .beginClass <LuaDialog::Message> ("Message")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                          
  737 |                 .addConstructor <void (*) (std::string const&, std::string const&, LuaDialog::Message::MessageType, LuaDialog::Message::ButtonType)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'LuaDialog::Message*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = LuaDialog::Dialog]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = LuaDialog::Dialog]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = LuaDialog::Dialog; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<const std::__cxx11::basic_string<char>&, luabridge::TypeList<luabridge::LuaRef, void> >; T = LuaDialog::Dialog; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(const std::__cxx11::basic_string<char>&, luabridge::LuaRef); T = LuaDialog::Dialog]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:742:70:   required from here
  733 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                           
  734 |                 .beginNamespace ("LuaDialog")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                       
  735 | 
      |                                                                                     
  736 |                 .beginClass <LuaDialog::Message> ("Message")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
  737 |                 .addConstructor <void (*) (std::string const&, std::string const&, LuaDialog::Message::MessageType, LuaDialog::Message::ButtonType)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  738 |                 .addFunction ("run", &LuaDialog::Message::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
  739 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
  740 | 
      |                                                                                     
  741 |                 .beginClass <LuaDialog::Dialog> ("Dialog")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  742 |                 .addConstructor <void (*) (std::string const&, luabridge::LuaRef)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'LuaDialog::Dialog*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = LuaDialog::ProgressWindow]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = LuaDialog::ProgressWindow]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = LuaDialog::ProgressWindow; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<const std::__cxx11::basic_string<char>&, luabridge::TypeList<bool, void> >; T = LuaDialog::ProgressWindow; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(const std::__cxx11::basic_string<char>&, bool); T = LuaDialog::ProgressWindow]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:772:57:   required from here
  733 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
  734 |                 .beginNamespace ("LuaDialog")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  735 | 
      |                                                                        
  736 |                 .beginClass <LuaDialog::Message> ("Message")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  737 |                 .addConstructor <void (*) (std::string const&, std::string const&, LuaDialog::Message::MessageType, LuaDialog::Message::ButtonType)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  738 |                 .addFunction ("run", &LuaDialog::Message::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  739 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
  740 | 
      |                                                                        
  741 |                 .beginClass <LuaDialog::Dialog> ("Dialog")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  742 |                 .addConstructor <void (*) (std::string const&, luabridge::LuaRef)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  743 |                 .addCFunction ("run", &LuaDialog::Dialog::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  744 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
  745 | 
      |                                                                        
  746 |                 /* enums */
      |                 ~~~~~~~~~~~                                            
  747 |                 .beginNamespace ("MessageType")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
  748 |                 .addConst ("Info", LuaDialog::Message::Info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  749 |                 .addConst ("Warning", LuaDialog::Message::Warning)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  750 |                 .addConst ("Question", LuaDialog::Message::Question)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  751 |                 .addConst ("Error", LuaDialog::Message::Error)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  752 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                       
  753 | 
      |                                                                        
  754 |                 .beginNamespace ("ButtonType")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
  755 |                 .addConst ("OK", LuaDialog::Message::OK)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  756 |                 .addConst ("Close", LuaDialog::Message::Close)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  757 |                 .addConst ("Cancel", LuaDialog::Message::Cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  758 |                 .addConst ("Yes_No", LuaDialog::Message::Yes_No)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  759 |                 .addConst ("OK_Cancel", LuaDialog::Message::OK_Cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  760 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                       
  761 | 
      |                                                                        
  762 |                 .beginNamespace ("Response")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
  763 |                 .addConst ("OK", 0)
      |                 ~~~~~~~~~~~~~~~~~~~                                    
  764 |                 .addConst ("Cancel", 1)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~                                
  765 |                 .addConst ("Close", 2)
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                 
  766 |                 .addConst ("Yes", 3)
      |                 ~~~~~~~~~~~~~~~~~~~~                                   
  767 |                 .addConst ("No", 4)
      |                 ~~~~~~~~~~~~~~~~~~~                                    
  768 |                 .addConst ("None", -1)
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                 
  769 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                       
  770 | 
      |                                                                        
  771 |                 .beginClass <LuaDialog::ProgressWindow> ("ProgressWindow")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  772 |                 .addConstructor <void (*) (std::string const&, bool)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'LuaDialog::ProgressWindow*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::bitset<50>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::bitset<50>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::bitset<50>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::bitset<50>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::bitset<50>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::bitset<50>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:1991:27:   required from 'luabridge::Namespace::Class<std::bitset<T> > luabridge::Namespace::beginStdBitSet(const char*) [with unsigned int T = 50]'
 1990 |     return beginClass<BS> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 1991 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../gtk2_ardour/luainstance.cc:562:44:   required from here
  560 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  561 |                 .beginNamespace ("LuaSignal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  562 |                 .beginStdBitSet <LuaSignal::LAST_SIGNAL> ("Set")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::bitset<50>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<double>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<double>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<double>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<double>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<double>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<double>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = double]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../gtk2_ardour/luainstance.cc:585:28:   required from here
  582 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  583 |                 .beginNamespace ("C")
      |                 ~~~~~~~~~~~~~~~~~~~~~     
  584 |                 .registerArray <double> ("DoubleArray")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  585 |                 .beginStdVector <double> ("DoubleVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<double>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<TimeAxisView*>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<TimeAxisView*>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<TimeAxisView*>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<TimeAxisView*>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<TimeAxisView*>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<TimeAxisView*>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2045:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<RequestObject*> > luabridge::Namespace::beginConstStdCPtrList(const char*) [with T = TimeAxisView]'
 2044 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2045 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../gtk2_ardour/luainstance.cc:854:41:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  794 | 
      |                                                        
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                                                        
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                                                        
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                                                        
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~                           
  803 | 
      |                                                        
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~                           
  809 | 
      |                                                        
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~                           
  812 | 
      |                                                        
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~                           
  820 | 
      |                                                        
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~                           
  823 | 
      |                                                        
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~                           
  826 | 
      |                                                        
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~                           
  829 | 
      |                                                        
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~                           
  835 | 
      |                                                        
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~                           
  840 | 
      |                                                        
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~                           
  843 | 
      |                                                        
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~                           
  848 | 
      |                                                        
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~              
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                 .endClass ()
      |                 ~~~~~~~~~~~~                           
  852 | 
      |                                                        
  853 |                 // std::list<TimeAxisView*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  854 |                 .beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<TimeAxisView*>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<std::shared_ptr<ARDOUR::Processor> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<std::shared_ptr<ARDOUR::Processor> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<std::shared_ptr<ARDOUR::Processor> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::vector<std::shared_ptr<ARDOUR::Processor> >; T = std::vector<std::shared_ptr<ARDOUR::Processor> >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::vector<std::shared_ptr<ARDOUR::Processor> >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::vector<std::shared_ptr<ARDOUR::Processor> >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:220:61:   required from 'static int luabridge::CFunc::Call<FnPtr, ReturnType>::f(lua_State*) [with FnPtr = std::vector<std::shared_ptr<ARDOUR::Processor> > (*)(); ReturnType = std::vector<std::shared_ptr<ARDOUR::Processor> >; lua_State = lua_State]'
  220 |       Stack <typename FuncTraits <FnPtr>::ReturnType>::push (L, FuncTraits <FnPtr>::call (fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1884:26:   required from 'luabridge::Namespace& luabridge::Namespace::addFunction(const char*, FP) [with FP = std::vector<std::shared_ptr<ARDOUR::Processor> > (*)()]'
 1884 |     lua_pushcclosure (L, &CFunc::Call <FP>::f, 1);
      |                          ^~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:799:16:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                               
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                               
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                               
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<std::shared_ptr<ARDOUR::Processor> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<ArdourMarker*>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<ArdourMarker*>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<ArdourMarker*>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<ArdourMarker*>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<ArdourMarker*>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<ArdourMarker*>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2045:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<RequestObject*> > luabridge::Namespace::beginConstStdCPtrList(const char*) [with T = ArdourMarker]'
 2044 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2045 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2061:37:   required from 'luabridge::Namespace::Class<std::__cxx11::list<RequestObject*> > luabridge::Namespace::beginStdCPtrList(const char*) [with T = ArdourMarker]'
 2061 |     return beginConstStdCPtrList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../gtk2_ardour/luainstance.cc:801:36:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  794 | 
      |                                                   
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                                                   
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                                                   
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                                                   
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<ArdourMarker*>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<Selectable*>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<Selectable*>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<Selectable*>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<Selectable*>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<Selectable*>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<Selectable*>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2045:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<RequestObject*> > luabridge::Namespace::beginConstStdCPtrList(const char*) [with T = Selectable]'
 2044 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2045 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2061:37:   required from 'luabridge::Namespace::Class<std::__cxx11::list<RequestObject*> > luabridge::Namespace::beginStdCPtrList(const char*) [with T = Selectable]'
 2061 |     return beginConstStdCPtrList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../gtk2_ardour/luainstance.cc:850:34:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  794 | 
      |                                                 
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                                                 
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                                                 
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                                                 
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~                    
  803 | 
      |                                                 
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~                    
  809 | 
      |                                                 
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~                    
  812 | 
      |                                                 
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~                    
  820 | 
      |                                                 
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~                    
  823 | 
      |                                                 
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~                    
  826 | 
      |                                                 
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~                    
  829 | 
      |                                                 
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~                    
  835 | 
      |                                                 
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~                    
  840 | 
      |                                                 
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~                    
  843 | 
      |                                                 
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~                    
  848 | 
      |                                                 
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~       
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<Selectable*>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = TrackSelection]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = TrackSelection]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = TrackSelection; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = TrackSelection; T = TrackSelection; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = TrackSelection; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = TrackSelection; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1125:21:   required from 'static int luabridge::CFunc::getProperty(lua_State*) [with C = Selection; T = TrackSelection; lua_State = lua_State]'
 1125 |     Stack <T>::push (L, c->**mp);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:837:26:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addData(const char*, const U T::*, bool) [with U = TrackSelection; T = Selection]'
  837 |         lua_pushcclosure (L, &CFunc::getProperty <T,U>, 1);
      |         ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:889:12:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                           
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                           
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                           
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                           
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  803 | 
      |                           
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  809 | 
      |                           
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  812 | 
      |                           
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  820 | 
      |                           
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  823 | 
      |                           
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  826 | 
      |                           
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  829 | 
      |                           
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  835 | 
      |                           
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  840 | 
      |                           
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  843 | 
      |                           
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  848 | 
      |                           
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  852 | 
      |                           
  853 |                 // std::list<TimeAxisView*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 |                 .beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  855 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  856 | 
      |                           
  857 | 
      |                           
  858 |                 .beginClass <RegionSelection> ("RegionSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  859 |                 .addFunction ("start_time", &RegionSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("end_time", &RegionSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("n_midi_regions", &RegionSelection::n_midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("regionlist", &RegionSelection::regionlist) // XXX check windows binding (libardour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  864 | 
      |                           
  865 |                 .deriveClass <TimeSelection, std::list<ARDOUR::TimelineRange> > ("TimeSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  866 |                 .addFunction ("start_time", &TimeSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("end_time", &TimeSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("start_sample", &TimeSelection::start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 |                 .addFunction ("end_sample", &TimeSelection::end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  870 |                 .addFunction ("length", &TimeSelection::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  872 | 
      |                           
  873 |                 .deriveClass <MarkerSelection, std::list<ArdourMarker*> > ("MarkerSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  874 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  875 | 
      |                           
  876 |                 .beginClass <TrackViewList> ("TrackViewList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 |                 .addCast<std::list<TimeAxisView*> > ("to_tav_list")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  878 |                 .addFunction ("contains", &TrackViewList::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("routelist", &TrackViewList::routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  880 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  881 | 
      |                           
  882 |                 .deriveClass <TrackSelection, TrackViewList> ("TrackSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  883 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  884 | 
      |                           
  885 |                 .beginClass <Selection> ("Selection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  886 |                 .addFunction ("clear", &Selection::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .addFunction ("clear_all", &Selection::clear_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  888 |                 .addFunction ("empty", &Selection::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  889 |                 .addData ("tracks", &Selection::tracks)
      |                 ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'TrackSelection*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = RegionSelection]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = RegionSelection]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = RegionSelection; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = RegionSelection; T = RegionSelection; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = RegionSelection; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = RegionSelection; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1125:21:   required from 'static int luabridge::CFunc::getProperty(lua_State*) [with C = Selection; T = RegionSelection; lua_State = lua_State]'
 1125 |     Stack <T>::push (L, c->**mp);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:837:26:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addData(const char*, const U T::*, bool) [with U = RegionSelection; T = Selection]'
  837 |         lua_pushcclosure (L, &CFunc::getProperty <T,U>, 1);
      |         ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:890:12:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                           
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                           
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                           
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                           
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  803 | 
      |                           
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  809 | 
      |                           
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  812 | 
      |                           
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  820 | 
      |                           
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  823 | 
      |                           
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  826 | 
      |                           
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  829 | 
      |                           
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  835 | 
      |                           
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  840 | 
      |                           
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  843 | 
      |                           
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  848 | 
      |                           
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  852 | 
      |                           
  853 |                 // std::list<TimeAxisView*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 |                 .beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  855 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  856 | 
      |                           
  857 | 
      |                           
  858 |                 .beginClass <RegionSelection> ("RegionSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  859 |                 .addFunction ("start_time", &RegionSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("end_time", &RegionSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("n_midi_regions", &RegionSelection::n_midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("regionlist", &RegionSelection::regionlist) // XXX check windows binding (libardour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  864 | 
      |                           
  865 |                 .deriveClass <TimeSelection, std::list<ARDOUR::TimelineRange> > ("TimeSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  866 |                 .addFunction ("start_time", &TimeSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("end_time", &TimeSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("start_sample", &TimeSelection::start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 |                 .addFunction ("end_sample", &TimeSelection::end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  870 |                 .addFunction ("length", &TimeSelection::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  872 | 
      |                           
  873 |                 .deriveClass <MarkerSelection, std::list<ArdourMarker*> > ("MarkerSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  874 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  875 | 
      |                           
  876 |                 .beginClass <TrackViewList> ("TrackViewList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 |                 .addCast<std::list<TimeAxisView*> > ("to_tav_list")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  878 |                 .addFunction ("contains", &TrackViewList::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("routelist", &TrackViewList::routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  880 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  881 | 
      |                           
  882 |                 .deriveClass <TrackSelection, TrackViewList> ("TrackSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  883 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  884 | 
      |                           
  885 |                 .beginClass <Selection> ("Selection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  886 |                 .addFunction ("clear", &Selection::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .addFunction ("clear_all", &Selection::clear_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  888 |                 .addFunction ("empty", &Selection::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  889 |                 .addData ("tracks", &Selection::tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  890 |                 .addData ("regions", &Selection::regions)
      |                 ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'RegionSelection*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = TimeSelection]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = TimeSelection]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = TimeSelection; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = TimeSelection; T = TimeSelection; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = TimeSelection; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = TimeSelection; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1125:21:   required from 'static int luabridge::CFunc::getProperty(lua_State*) [with C = Selection; T = TimeSelection; lua_State = lua_State]'
 1125 |     Stack <T>::push (L, c->**mp);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:837:26:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addData(const char*, const U T::*, bool) [with U = TimeSelection; T = Selection]'
  837 |         lua_pushcclosure (L, &CFunc::getProperty <T,U>, 1);
      |         ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:891:12:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                           
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                           
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                           
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                           
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  803 | 
      |                           
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  809 | 
      |                           
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  812 | 
      |                           
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  820 | 
      |                           
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  823 | 
      |                           
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  826 | 
      |                           
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  829 | 
      |                           
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  835 | 
      |                           
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  840 | 
      |                           
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  843 | 
      |                           
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  848 | 
      |                           
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  852 | 
      |                           
  853 |                 // std::list<TimeAxisView*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 |                 .beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  855 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  856 | 
      |                           
  857 | 
      |                           
  858 |                 .beginClass <RegionSelection> ("RegionSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  859 |                 .addFunction ("start_time", &RegionSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("end_time", &RegionSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("n_midi_regions", &RegionSelection::n_midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("regionlist", &RegionSelection::regionlist) // XXX check windows binding (libardour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  864 | 
      |                           
  865 |                 .deriveClass <TimeSelection, std::list<ARDOUR::TimelineRange> > ("TimeSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  866 |                 .addFunction ("start_time", &TimeSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("end_time", &TimeSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("start_sample", &TimeSelection::start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 |                 .addFunction ("end_sample", &TimeSelection::end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  870 |                 .addFunction ("length", &TimeSelection::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  872 | 
      |                           
  873 |                 .deriveClass <MarkerSelection, std::list<ArdourMarker*> > ("MarkerSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  874 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  875 | 
      |                           
  876 |                 .beginClass <TrackViewList> ("TrackViewList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 |                 .addCast<std::list<TimeAxisView*> > ("to_tav_list")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  878 |                 .addFunction ("contains", &TrackViewList::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("routelist", &TrackViewList::routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  880 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  881 | 
      |                           
  882 |                 .deriveClass <TrackSelection, TrackViewList> ("TrackSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  883 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  884 | 
      |                           
  885 |                 .beginClass <Selection> ("Selection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  886 |                 .addFunction ("clear", &Selection::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .addFunction ("clear_all", &Selection::clear_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  888 |                 .addFunction ("empty", &Selection::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  889 |                 .addData ("tracks", &Selection::tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  890 |                 .addData ("regions", &Selection::regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  891 |                 .addData ("time", &Selection::time)
      |                 ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'TimeSelection*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = MarkerSelection]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = MarkerSelection]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = MarkerSelection; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = MarkerSelection; T = MarkerSelection; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = MarkerSelection; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = MarkerSelection; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1125:21:   required from 'static int luabridge::CFunc::getProperty(lua_State*) [with C = Selection; T = MarkerSelection; lua_State = lua_State]'
 1125 |     Stack <T>::push (L, c->**mp);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:837:26:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addData(const char*, const U T::*, bool) [with U = MarkerSelection; T = Selection]'
  837 |         lua_pushcclosure (L, &CFunc::getProperty <T,U>, 1);
      |         ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:892:12:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                           
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                           
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                           
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                           
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  803 | 
      |                           
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  809 | 
      |                           
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  812 | 
      |                           
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  820 | 
      |                           
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  823 | 
      |                           
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  826 | 
      |                           
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  829 | 
      |                           
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  835 | 
      |                           
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  840 | 
      |                           
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  843 | 
      |                           
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  848 | 
      |                           
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  852 | 
      |                           
  853 |                 // std::list<TimeAxisView*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 |                 .beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  855 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  856 | 
      |                           
  857 | 
      |                           
  858 |                 .beginClass <RegionSelection> ("RegionSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  859 |                 .addFunction ("start_time", &RegionSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("end_time", &RegionSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("n_midi_regions", &RegionSelection::n_midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("regionlist", &RegionSelection::regionlist) // XXX check windows binding (libardour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  864 | 
      |                           
  865 |                 .deriveClass <TimeSelection, std::list<ARDOUR::TimelineRange> > ("TimeSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  866 |                 .addFunction ("start_time", &TimeSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("end_time", &TimeSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("start_sample", &TimeSelection::start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 |                 .addFunction ("end_sample", &TimeSelection::end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  870 |                 .addFunction ("length", &TimeSelection::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  872 | 
      |                           
  873 |                 .deriveClass <MarkerSelection, std::list<ArdourMarker*> > ("MarkerSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  874 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  875 | 
      |                           
  876 |                 .beginClass <TrackViewList> ("TrackViewList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 |                 .addCast<std::list<TimeAxisView*> > ("to_tav_list")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  878 |                 .addFunction ("contains", &TrackViewList::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("routelist", &TrackViewList::routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  880 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  881 | 
      |                           
  882 |                 .deriveClass <TrackSelection, TrackViewList> ("TrackSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  883 |                 .endClass ()
      |                 ~~~~~~~~~~~~
  884 | 
      |                           
  885 |                 .beginClass <Selection> ("Selection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  886 |                 .addFunction ("clear", &Selection::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .addFunction ("clear_all", &Selection::clear_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  888 |                 .addFunction ("empty", &Selection::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  889 |                 .addData ("tracks", &Selection::tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  890 |                 .addData ("regions", &Selection::regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  891 |                 .addData ("time", &Selection::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  892 |                 .addData ("markers", &Selection::markers)
      |                 ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'MarkerSelection*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Temporal::timepos_t]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Temporal::timepos_t]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Temporal::timepos_t; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = Temporal::timepos_t; T = Temporal::timepos_t; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = Temporal::timepos_t; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = Temporal::timepos_t; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:331:32:   required from 'static int luabridge::CFunc::CallConstMember<MemFnPtr, ReturnType>::f(lua_State*) [with MemFnPtr = Temporal::timepos_t (ArdourMarker::*)() const; ReturnType = Temporal::timepos_t; lua_State = lua_State]'
  331 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (t, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:982:28:   required from 'static void luabridge::CFunc::CallMemberFunctionHelper<MemFnPtr, isConst>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = Temporal::timepos_t (ArdourMarker::*)() const; bool isConst = true; lua_State = lua_State]'
  982 |       lua_pushcclosure (L, &CallConstMember <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:982:95:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addFunction(const char*, MemFn) [with MemFn = Temporal::timepos_t (ArdourMarker::*)() const; T = ArdourMarker]'
  982 |       CFunc::CallMemberFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:806:16:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                               
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                               
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                               
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                               
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  803 | 
      |                               
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Temporal::timepos_t*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >; T = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:331:32:   required from 'static int luabridge::CFunc::CallConstMember<MemFnPtr, ReturnType>::f(lua_State*) [with MemFnPtr = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > (RegionSelection::*)() const; ReturnType = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >; lua_State = lua_State]'
  331 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (t, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:982:28:   required from 'static void luabridge::CFunc::CallMemberFunctionHelper<MemFnPtr, isConst>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > (RegionSelection::*)() const; bool isConst = true; lua_State = lua_State]'
  982 |       lua_pushcclosure (L, &CallConstMember <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:982:95:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addFunction(const char*, MemFn) [with MemFn = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > (RegionSelection::*)() const; T = RegionSelection]'
  982 |       CFunc::CallMemberFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:862:16:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                               
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                               
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                               
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                               
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  803 | 
      |                               
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  809 | 
      |                               
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  812 | 
      |                               
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  820 | 
      |                               
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  823 | 
      |                               
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  826 | 
      |                               
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  829 | 
      |                               
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  835 | 
      |                               
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  840 | 
      |                               
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  843 | 
      |                               
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  848 | 
      |                               
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  852 | 
      |                               
  853 |                 // std::list<TimeAxisView*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 |                 .beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  855 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  856 | 
      |                               
  857 | 
      |                               
  858 |                 .beginClass <RegionSelection> ("RegionSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  859 |                 .addFunction ("start_time", &RegionSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("end_time", &RegionSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("n_midi_regions", &RegionSelection::n_midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("regionlist", &RegionSelection::regionlist) // XXX check windows binding (libardour)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Temporal::timecnt_t]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Temporal::timecnt_t]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Temporal::timecnt_t; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = Temporal::timecnt_t; T = Temporal::timecnt_t; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = Temporal::timecnt_t; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = Temporal::timecnt_t; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:331:32:   required from 'static int luabridge::CFunc::CallConstMember<MemFnPtr, ReturnType>::f(lua_State*) [with MemFnPtr = Temporal::timecnt_t (TimeSelection::*)() const; ReturnType = Temporal::timecnt_t; lua_State = lua_State]'
  331 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (t, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:982:28:   required from 'static void luabridge::CFunc::CallMemberFunctionHelper<MemFnPtr, isConst>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = Temporal::timecnt_t (TimeSelection::*)() const; bool isConst = true; lua_State = lua_State]'
  982 |       lua_pushcclosure (L, &CallConstMember <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:982:95:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addFunction(const char*, MemFn) [with MemFn = Temporal::timecnt_t (TimeSelection::*)() const; T = TimeSelection]'
  982 |       CFunc::CallMemberFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:870:16:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                               
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                               
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                               
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                               
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  803 | 
      |                               
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  809 | 
      |                               
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  812 | 
      |                               
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  820 | 
      |                               
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  823 | 
      |                               
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  826 | 
      |                               
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  829 | 
      |                               
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  835 | 
      |                               
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  840 | 
      |                               
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  843 | 
      |                               
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  848 | 
      |                               
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  852 | 
      |                               
  853 |                 // std::list<TimeAxisView*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 |                 .beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  855 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  856 | 
      |                               
  857 | 
      |                               
  858 |                 .beginClass <RegionSelection> ("RegionSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  859 |                 .addFunction ("start_time", &RegionSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("end_time", &RegionSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("n_midi_regions", &RegionSelection::n_midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("regionlist", &RegionSelection::regionlist) // XXX check windows binding (libardour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  864 | 
      |                               
  865 |                 .deriveClass <TimeSelection, std::list<ARDOUR::TimelineRange> > ("TimeSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  866 |                 .addFunction ("start_time", &TimeSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("end_time", &TimeSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("start_sample", &TimeSelection::start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 |                 .addFunction ("end_sample", &TimeSelection::end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  870 |                 .addFunction ("length", &TimeSelection::length)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Temporal::timecnt_t*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; T = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:331:32:   required from 'static int luabridge::CFunc::CallConstMember<MemFnPtr, ReturnType>::f(lua_State*) [with MemFnPtr = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > (TrackViewList::*)() const; ReturnType = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; lua_State = lua_State]'
  331 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (t, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:982:28:   required from 'static void luabridge::CFunc::CallMemberFunctionHelper<MemFnPtr, isConst>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > (TrackViewList::*)() const; bool isConst = true; lua_State = lua_State]'
  982 |       lua_pushcclosure (L, &CallConstMember <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:982:95:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addFunction(const char*, MemFn) [with MemFn = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > (TrackViewList::*)() const; T = TrackViewList]'
  982 |       CFunc::CallMemberFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:879:16:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                               
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                               
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                               
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                               
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  803 | 
      |                               
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  809 | 
      |                               
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  812 | 
      |                               
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  820 | 
      |                               
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  823 | 
      |                               
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  826 | 
      |                               
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  829 | 
      |                               
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  835 | 
      |                               
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  840 | 
      |                               
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  843 | 
      |                               
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  848 | 
      |                               
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  852 | 
      |                               
  853 |                 // std::list<TimeAxisView*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 |                 .beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  855 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  856 | 
      |                               
  857 | 
      |                               
  858 |                 .beginClass <RegionSelection> ("RegionSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  859 |                 .addFunction ("start_time", &RegionSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("end_time", &RegionSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("n_midi_regions", &RegionSelection::n_midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("regionlist", &RegionSelection::regionlist) // XXX check windows binding (libardour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  864 | 
      |                               
  865 |                 .deriveClass <TimeSelection, std::list<ARDOUR::TimelineRange> > ("TimeSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  866 |                 .addFunction ("start_time", &TimeSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("end_time", &TimeSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("start_sample", &TimeSelection::start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 |                 .addFunction ("end_sample", &TimeSelection::end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  870 |                 .addFunction ("length", &TimeSelection::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  872 | 
      |                               
  873 |                 .deriveClass <MarkerSelection, std::list<ArdourMarker*> > ("MarkerSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  874 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  875 | 
      |                               
  876 |                 .beginClass <TrackViewList> ("TrackViewList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 |                 .addCast<std::list<TimeAxisView*> > ("to_tav_list")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  878 |                 .addFunction ("contains", &TrackViewList::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("routelist", &TrackViewList::routelist)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Route>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Route>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Route>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Route>; T = std::shared_ptr<ARDOUR::Route>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Route>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Route>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:331:32:   required from 'static int luabridge::CFunc::CallConstMember<MemFnPtr, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::Route> (PublicEditor::*)() const; ReturnType = std::shared_ptr<ARDOUR::Route>; lua_State = lua_State]'
  331 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (t, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:982:28:   required from 'static void luabridge::CFunc::CallMemberFunctionHelper<MemFnPtr, isConst>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::Route> (PublicEditor::*)() const; bool isConst = true; lua_State = lua_State]'
  982 |       lua_pushcclosure (L, &CallConstMember <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:982:95:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::Route> (PublicEditor::*)() const; T = PublicEditor]'
  982 |       CFunc::CallMemberFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:924:16:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                               
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                               
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                               
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                               
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  803 | 
      |                               
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  809 | 
      |                               
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  812 | 
      |                               
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  820 | 
      |                               
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  823 | 
      |                               
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  826 | 
      |                               
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  829 | 
      |                               
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  835 | 
      |                               
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  840 | 
      |                               
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  843 | 
      |                               
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  848 | 
      |                               
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  852 | 
      |                               
  853 |                 // std::list<TimeAxisView*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 |                 .beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  855 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  856 | 
      |                               
  857 | 
      |                               
  858 |                 .beginClass <RegionSelection> ("RegionSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  859 |                 .addFunction ("start_time", &RegionSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("end_time", &RegionSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("n_midi_regions", &RegionSelection::n_midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("regionlist", &RegionSelection::regionlist) // XXX check windows binding (libardour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  864 | 
      |                               
  865 |                 .deriveClass <TimeSelection, std::list<ARDOUR::TimelineRange> > ("TimeSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  866 |                 .addFunction ("start_time", &TimeSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("end_time", &TimeSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("start_sample", &TimeSelection::start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 |                 .addFunction ("end_sample", &TimeSelection::end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  870 |                 .addFunction ("length", &TimeSelection::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  872 | 
      |                               
  873 |                 .deriveClass <MarkerSelection, std::list<ArdourMarker*> > ("MarkerSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  874 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  875 | 
      |                               
  876 |                 .beginClass <TrackViewList> ("TrackViewList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 |                 .addCast<std::list<TimeAxisView*> > ("to_tav_list")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  878 |                 .addFunction ("contains", &TrackViewList::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("routelist", &TrackViewList::routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  880 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  881 | 
      |                               
  882 |                 .deriveClass <TrackSelection, TrackViewList> ("TrackSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  883 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  884 | 
      |                               
  885 |                 .beginClass <Selection> ("Selection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  886 |                 .addFunction ("clear", &Selection::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .addFunction ("clear_all", &Selection::clear_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  888 |                 .addFunction ("empty", &Selection::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  889 |                 .addData ("tracks", &Selection::tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  890 |                 .addData ("regions", &Selection::regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  891 |                 .addData ("time", &Selection::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  892 |                 .addData ("markers", &Selection::markers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  893 | #if 0
      | ~~~~~                         
  894 |                 .addData ("lines", &Selection::lines)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  895 |                 .addData ("playlists", &Selection::playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  896 |                 .addData ("points", &Selection::points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  897 |                 .addData ("midi_regions", &Selection::midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  898 |                 .addData ("midi_notes", &Selection::midi_notes) // cut buffer only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  899 | #endif
      | ~~~~~~                        
  900 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  901 | 
      |                               
  902 |                 .beginClass <PublicEditor> ("Editor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  903 |                 .addFunction ("grid_type", &PublicEditor::grid_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  904 |                 .addFunction ("snap_mode", &PublicEditor::snap_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  905 |                 .addFunction ("set_snap_mode", &PublicEditor::set_snap_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  906 | 
      |                               
  907 |                 .addFunction ("undo", &PublicEditor::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  908 |                 .addFunction ("redo", &PublicEditor::redo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  909 | 
      |                               
  910 |                 .addFunction ("set_mouse_mode", &PublicEditor::set_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  911 |                 .addFunction ("current_mouse_mode", &PublicEditor::current_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  912 | 
      |                               
  913 |                 .addFunction ("consider_auditioning", &PublicEditor::consider_auditioning)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  914 | 
      |                               
  915 |                 .addFunction ("new_region_from_selection", &PublicEditor::new_region_from_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  916 |                 .addFunction ("separate_region_from_selection", &PublicEditor::separate_region_from_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  917 |                 .addFunction ("pixel_to_sample", &PublicEditor::pixel_to_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  918 |                 .addFunction ("sample_to_pixel", &PublicEditor::sample_to_pixel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  919 | 
      |                               
  920 |                 .addFunction ("get_selection", &PublicEditor::get_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  921 |                 .addFunction ("get_cut_buffer", &PublicEditor::get_cut_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  922 |                 .addRefFunction ("get_selection_extents", &PublicEditor::get_selection_extents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  923 | 
      |                               
  924 |                 .addFunction ("current_mixer_stripable", &PublicEditor::current_mixer_stripable)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Route>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Temporal::Beats]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Temporal::Beats]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Temporal::Beats; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = Temporal::Beats; T = Temporal::Beats; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = Temporal::Beats; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = Temporal::Beats; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:606:32:   required from 'static int luabridge::CFunc::CallMemberRef<MemFnPtr, ReturnType>::f(lua_State*) [with MemFnPtr = Temporal::Beats (PublicEditor::*)(bool&, const Temporal::timepos_t&); ReturnType = Temporal::Beats; lua_State = lua_State]'
  606 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (t, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1091:28:   required from 'static void luabridge::CFunc::CallMemberRefFunctionHelper<MemFnPtr, false>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = Temporal::Beats (PublicEditor::*)(bool&, const Temporal::timepos_t&); lua_State = lua_State]'
 1091 |       lua_pushcclosure (L, &CallMemberRef <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1006:98:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addRefFunction(const char*, MemFn) [with MemFn = Temporal::Beats (PublicEditor::*)(bool&, const Temporal::timepos_t&); T = PublicEditor]'
 1006 |       CFunc::CallMemberRefFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:1015:19:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                                  
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                                  
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                                  
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                                  
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  803 | 
      |                                  
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  809 | 
      |                                  
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  812 | 
      |                                  
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  820 | 
      |                                  
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  823 | 
      |                                  
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  826 | 
      |                                  
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  829 | 
      |                                  
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  835 | 
      |                                  
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  840 | 
      |                                  
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  843 | 
      |                                  
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  848 | 
      |                                  
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  852 | 
      |                                  
  853 |                 // std::list<TimeAxisView*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 |                 .beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  855 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  856 | 
      |                                  
  857 | 
      |                                  
  858 |                 .beginClass <RegionSelection> ("RegionSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  859 |                 .addFunction ("start_time", &RegionSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("end_time", &RegionSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("n_midi_regions", &RegionSelection::n_midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("regionlist", &RegionSelection::regionlist) // XXX check windows binding (libardour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  864 | 
      |                                  
  865 |                 .deriveClass <TimeSelection, std::list<ARDOUR::TimelineRange> > ("TimeSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  866 |                 .addFunction ("start_time", &TimeSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("end_time", &TimeSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("start_sample", &TimeSelection::start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 |                 .addFunction ("end_sample", &TimeSelection::end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  870 |                 .addFunction ("length", &TimeSelection::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  872 | 
      |                                  
  873 |                 .deriveClass <MarkerSelection, std::list<ArdourMarker*> > ("MarkerSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  874 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  875 | 
      |                                  
  876 |                 .beginClass <TrackViewList> ("TrackViewList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 |                 .addCast<std::list<TimeAxisView*> > ("to_tav_list")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  878 |                 .addFunction ("contains", &TrackViewList::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("routelist", &TrackViewList::routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  880 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  881 | 
      |                                  
  882 |                 .deriveClass <TrackSelection, TrackViewList> ("TrackSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  883 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  884 | 
      |                                  
  885 |                 .beginClass <Selection> ("Selection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  886 |                 .addFunction ("clear", &Selection::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .addFunction ("clear_all", &Selection::clear_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  888 |                 .addFunction ("empty", &Selection::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  889 |                 .addData ("tracks", &Selection::tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  890 |                 .addData ("regions", &Selection::regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  891 |                 .addData ("time", &Selection::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  892 |                 .addData ("markers", &Selection::markers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  893 | #if 0
      | ~~~~~                            
  894 |                 .addData ("lines", &Selection::lines)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  895 |                 .addData ("playlists", &Selection::playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  896 |                 .addData ("points", &Selection::points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  897 |                 .addData ("midi_regions", &Selection::midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  898 |                 .addData ("midi_notes", &Selection::midi_notes) // cut buffer only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  899 | #endif
      | ~~~~~~                           
  900 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  901 | 
      |                                  
  902 |                 .beginClass <PublicEditor> ("Editor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  903 |                 .addFunction ("grid_type", &PublicEditor::grid_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  904 |                 .addFunction ("snap_mode", &PublicEditor::snap_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  905 |                 .addFunction ("set_snap_mode", &PublicEditor::set_snap_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  906 | 
      |                                  
  907 |                 .addFunction ("undo", &PublicEditor::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  908 |                 .addFunction ("redo", &PublicEditor::redo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  909 | 
      |                                  
  910 |                 .addFunction ("set_mouse_mode", &PublicEditor::set_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  911 |                 .addFunction ("current_mouse_mode", &PublicEditor::current_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  912 | 
      |                                  
  913 |                 .addFunction ("consider_auditioning", &PublicEditor::consider_auditioning)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  914 | 
      |                                  
  915 |                 .addFunction ("new_region_from_selection", &PublicEditor::new_region_from_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  916 |                 .addFunction ("separate_region_from_selection", &PublicEditor::separate_region_from_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  917 |                 .addFunction ("pixel_to_sample", &PublicEditor::pixel_to_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  918 |                 .addFunction ("sample_to_pixel", &PublicEditor::sample_to_pixel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  919 | 
      |                                  
  920 |                 .addFunction ("get_selection", &PublicEditor::get_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  921 |                 .addFunction ("get_cut_buffer", &PublicEditor::get_cut_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  922 |                 .addRefFunction ("get_selection_extents", &PublicEditor::get_selection_extents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  923 | 
      |                                  
  924 |                 .addFunction ("current_mixer_stripable", &PublicEditor::current_mixer_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  925 | 
      |                                  
  926 |                 .addFunction ("set_selection", &PublicEditor::set_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  927 | 
      |                                  
  928 |                 .addFunction ("play_selection", &PublicEditor::play_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  929 |                 .addFunction ("play_with_preroll", &PublicEditor::play_with_preroll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  930 |                 .addFunction ("maybe_locate_with_edit_preroll", &PublicEditor::maybe_locate_with_edit_preroll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  931 |                 .addFunction ("goto_nth_marker", &PublicEditor::goto_nth_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  932 | 
      |                                  
  933 |                 .addFunction ("add_location_from_playhead_cursor", &PublicEditor::add_location_from_playhead_cursor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  934 |                 .addFunction ("remove_location_at_playhead_cursor", &PublicEditor::remove_location_at_playhead_cursor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  935 |                 .addFunction ("add_location_mark", &PublicEditor::add_location_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  936 | 
      |                                  
  937 |                 .addFunction ("update_grid", &PublicEditor::update_grid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  938 |                 .addFunction ("remove_tracks", &PublicEditor::remove_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  939 | 
      |                                  
  940 |                 .addFunction ("set_loop_range", &PublicEditor::set_loop_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  941 |                 .addFunction ("set_punch_range", &PublicEditor::set_punch_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  942 | 
      |                                  
  943 |                 .addFunction ("effective_mouse_mode", &PublicEditor::effective_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  944 | 
      |                                  
  945 |                 .addRefFunction ("do_import", &PublicEditor::do_import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  946 |                 .addRefFunction ("do_embed", &PublicEditor::do_embed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  947 | 
      |                                  
  948 |                 .addFunction ("export_audio", &PublicEditor::export_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  949 |                 .addFunction ("stem_export", &PublicEditor::stem_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  950 |                 .addFunction ("export_selection", &PublicEditor::export_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  951 |                 .addFunction ("export_range", &PublicEditor::export_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  952 |                 .addFunction ("quick_export", &PublicEditor::quick_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  953 | 
      |                                  
  954 |                 .addFunction ("set_zoom_focus", &PublicEditor::set_zoom_focus)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  955 |                 .addFunction ("get_zoom_focus", &PublicEditor::get_zoom_focus)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  956 |                 .addFunction ("get_current_zoom", &PublicEditor::get_current_zoom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  957 |                 .addFunction ("reset_zoom", &PublicEditor::reset_zoom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  958 | 
      |                                  
  959 |                 .addFunction ("clear_playlist", &PublicEditor::clear_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  960 |                 .addFunction ("clear_grouped_playlists", &PublicEditor::clear_grouped_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  961 | 
      |                                  
  962 |                 .addFunction ("new_playlists_for_grouped_tracks", &PublicEditor::new_playlists_for_grouped_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  963 |                 .addFunction ("new_playlists_for_all_tracks", &PublicEditor::new_playlists_for_all_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  964 |                 .addFunction ("new_playlists_for_armed_tracks", &PublicEditor::new_playlists_for_armed_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  965 |                 .addFunction ("new_playlists_for_selected_tracks", &PublicEditor::new_playlists_for_selected_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  966 | 
      |                                  
  967 |                 .addFunction ("select_all_visible_lanes", &PublicEditor::select_all_visible_lanes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  968 |                 .addFunction ("select_all_tracks", &PublicEditor::select_all_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  969 |                 .addFunction ("deselect_all", &PublicEditor::deselect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  970 | 
      |                                  
  971 | #if 0 // TimeAxisView&  can't be bound (pure virtual fn)
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  972 |                 .addFunction ("set_selected_track", &PublicEditor::set_selected_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  973 |                 .addFunction ("set_selected_mixer_strip", &PublicEditor::set_selected_mixer_strip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  974 |                 .addFunction ("ensure_time_axis_view_is_visible", &PublicEditor::ensure_time_axis_view_is_visible)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  975 | #endif
      | ~~~~~~                           
  976 |                 .addFunction ("hide_track_in_display", &PublicEditor::hide_track_in_display)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  977 |                 .addFunction ("show_track_in_display", &PublicEditor::show_track_in_display)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  978 |                 .addFunction ("set_visible_track_count", &PublicEditor::set_visible_track_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  979 |                 .addFunction ("fit_selection", &PublicEditor::fit_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  980 | 
      |                                  
  981 |                 .addFunction ("regionview_from_region", &PublicEditor::regionview_from_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  982 |                 .addFunction ("set_stationary_playhead", &PublicEditor::set_stationary_playhead)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  983 |                 .addFunction ("stationary_playhead", &PublicEditor::stationary_playhead)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  984 |                 .addFunction ("set_follow_playhead", &PublicEditor::set_follow_playhead)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  985 |                 .addFunction ("follow_playhead", &PublicEditor::follow_playhead)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  986 | 
      |                                  
  987 |                 .addFunction ("dragging_playhead", &PublicEditor::dragging_playhead)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  988 |                 .addFunction ("leftmost_sample", &PublicEditor::leftmost_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  989 |                 .addFunction ("current_page_samples", &PublicEditor::current_page_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  990 |                 .addFunction ("visible_canvas_height", &PublicEditor::visible_canvas_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  991 |                 .addFunction ("temporal_zoom_step", &PublicEditor::temporal_zoom_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  992 |                 .addFunction ("override_visible_track_count", &PublicEditor::override_visible_track_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  993 | 
      |                                  
  994 |                 .addFunction ("scroll_tracks_down_line", &PublicEditor::scroll_tracks_down_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  995 |                 .addFunction ("scroll_tracks_up_line", &PublicEditor::scroll_tracks_up_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  996 |                 .addFunction ("scroll_down_one_track", &PublicEditor::scroll_down_one_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  997 |                 .addFunction ("scroll_up_one_track", &PublicEditor::scroll_up_one_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  998 | 
      |                                  
  999 |                 .addFunction ("reset_x_origin", &PublicEditor::reset_x_origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1000 |                 .addFunction ("get_y_origin", &PublicEditor::get_y_origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1001 |                 .addFunction ("reset_y_origin", &PublicEditor::reset_y_origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1002 | 
      |                                  
 1003 |                 .addFunction ("remove_last_capture", &PublicEditor::remove_last_capture)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1004 | 
      |                                  
 1005 |                 .addFunction ("maximise_editing_space", &PublicEditor::maximise_editing_space)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1006 |                 .addFunction ("restore_editing_space", &PublicEditor::restore_editing_space)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1007 |                 .addFunction ("toggle_meter_updating", &PublicEditor::toggle_meter_updating)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1008 | 
      |                                  
 1009 |                 //.addFunction ("get_preferred_edit_position", &PublicEditor::get_preferred_edit_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1010 |                 //.addFunction ("split_regions_at", &PublicEditor::split_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1011 | 
      |                                  
 1012 |                 .addRefFunction ("get_nudge_distance", &PublicEditor::get_nudge_distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1013 |                 .addFunction ("get_paste_offset", &PublicEditor::get_paste_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1014 |                 .addFunction ("get_grid_beat_divisions", &PublicEditor::get_grid_beat_divisions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1015 |                 .addRefFunction ("get_grid_type_as_beats", &PublicEditor::get_grid_type_as_beats)
      |                 ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Temporal::Beats*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = TrackViewList]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = TrackViewList]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = TrackViewList; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = TrackViewList; T = TrackViewList; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = TrackViewList; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = TrackViewList; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:331:32:   required from 'static int luabridge::CFunc::CallConstMember<MemFnPtr, ReturnType>::f(lua_State*) [with MemFnPtr = TrackViewList (PublicEditor::*)(std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >) const; ReturnType = TrackViewList; lua_State = lua_State]'
  331 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (t, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:982:28:   required from 'static void luabridge::CFunc::CallMemberFunctionHelper<MemFnPtr, isConst>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = TrackViewList (PublicEditor::*)(std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >) const; bool isConst = true; lua_State = lua_State]'
  982 |       lua_pushcclosure (L, &CallConstMember <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:982:95:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addFunction(const char*, MemFn) [with MemFn = TrackViewList (PublicEditor::*)(std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >) const; T = PublicEditor]'
  982 |       CFunc::CallMemberFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:1031:16:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                               
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                               
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                               
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                               
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  803 | 
      |                               
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  809 | 
      |                               
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  812 | 
      |                               
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  820 | 
      |                               
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  823 | 
      |                               
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  826 | 
      |                               
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  829 | 
      |                               
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  835 | 
      |                               
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  840 | 
      |                               
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  843 | 
      |                               
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  848 | 
      |                               
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  852 | 
      |                               
  853 |                 // std::list<TimeAxisView*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 |                 .beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  855 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  856 | 
      |                               
  857 | 
      |                               
  858 |                 .beginClass <RegionSelection> ("RegionSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  859 |                 .addFunction ("start_time", &RegionSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("end_time", &RegionSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("n_midi_regions", &RegionSelection::n_midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("regionlist", &RegionSelection::regionlist) // XXX check windows binding (libardour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  864 | 
      |                               
  865 |                 .deriveClass <TimeSelection, std::list<ARDOUR::TimelineRange> > ("TimeSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  866 |                 .addFunction ("start_time", &TimeSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("end_time", &TimeSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("start_sample", &TimeSelection::start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 |                 .addFunction ("end_sample", &TimeSelection::end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  870 |                 .addFunction ("length", &TimeSelection::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  872 | 
      |                               
  873 |                 .deriveClass <MarkerSelection, std::list<ArdourMarker*> > ("MarkerSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  874 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  875 | 
      |                               
  876 |                 .beginClass <TrackViewList> ("TrackViewList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 |                 .addCast<std::list<TimeAxisView*> > ("to_tav_list")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  878 |                 .addFunction ("contains", &TrackViewList::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("routelist", &TrackViewList::routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  880 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  881 | 
      |                               
  882 |                 .deriveClass <TrackSelection, TrackViewList> ("TrackSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  883 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  884 | 
      |                               
  885 |                 .beginClass <Selection> ("Selection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  886 |                 .addFunction ("clear", &Selection::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .addFunction ("clear_all", &Selection::clear_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  888 |                 .addFunction ("empty", &Selection::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  889 |                 .addData ("tracks", &Selection::tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  890 |                 .addData ("regions", &Selection::regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  891 |                 .addData ("time", &Selection::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  892 |                 .addData ("markers", &Selection::markers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  893 | #if 0
      | ~~~~~                         
  894 |                 .addData ("lines", &Selection::lines)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  895 |                 .addData ("playlists", &Selection::playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  896 |                 .addData ("points", &Selection::points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  897 |                 .addData ("midi_regions", &Selection::midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  898 |                 .addData ("midi_notes", &Selection::midi_notes) // cut buffer only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  899 | #endif
      | ~~~~~~                        
  900 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
  901 | 
      |                               
  902 |                 .beginClass <PublicEditor> ("Editor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  903 |                 .addFunction ("grid_type", &PublicEditor::grid_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  904 |                 .addFunction ("snap_mode", &PublicEditor::snap_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  905 |                 .addFunction ("set_snap_mode", &PublicEditor::set_snap_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  906 | 
      |                               
  907 |                 .addFunction ("undo", &PublicEditor::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  908 |                 .addFunction ("redo", &PublicEditor::redo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  909 | 
      |                               
  910 |                 .addFunction ("set_mouse_mode", &PublicEditor::set_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  911 |                 .addFunction ("current_mouse_mode", &PublicEditor::current_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  912 | 
      |                               
  913 |                 .addFunction ("consider_auditioning", &PublicEditor::consider_auditioning)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  914 | 
      |                               
  915 |                 .addFunction ("new_region_from_selection", &PublicEditor::new_region_from_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  916 |                 .addFunction ("separate_region_from_selection", &PublicEditor::separate_region_from_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  917 |                 .addFunction ("pixel_to_sample", &PublicEditor::pixel_to_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  918 |                 .addFunction ("sample_to_pixel", &PublicEditor::sample_to_pixel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  919 | 
      |                               
  920 |                 .addFunction ("get_selection", &PublicEditor::get_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  921 |                 .addFunction ("get_cut_buffer", &PublicEditor::get_cut_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  922 |                 .addRefFunction ("get_selection_extents", &PublicEditor::get_selection_extents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  923 | 
      |                               
  924 |                 .addFunction ("current_mixer_stripable", &PublicEditor::current_mixer_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  925 | 
      |                               
  926 |                 .addFunction ("set_selection", &PublicEditor::set_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  927 | 
      |                               
  928 |                 .addFunction ("play_selection", &PublicEditor::play_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  929 |                 .addFunction ("play_with_preroll", &PublicEditor::play_with_preroll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  930 |                 .addFunction ("maybe_locate_with_edit_preroll", &PublicEditor::maybe_locate_with_edit_preroll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  931 |                 .addFunction ("goto_nth_marker", &PublicEditor::goto_nth_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  932 | 
      |                               
  933 |                 .addFunction ("add_location_from_playhead_cursor", &PublicEditor::add_location_from_playhead_cursor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  934 |                 .addFunction ("remove_location_at_playhead_cursor", &PublicEditor::remove_location_at_playhead_cursor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  935 |                 .addFunction ("add_location_mark", &PublicEditor::add_location_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  936 | 
      |                               
  937 |                 .addFunction ("update_grid", &PublicEditor::update_grid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  938 |                 .addFunction ("remove_tracks", &PublicEditor::remove_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  939 | 
      |                               
  940 |                 .addFunction ("set_loop_range", &PublicEditor::set_loop_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  941 |                 .addFunction ("set_punch_range", &PublicEditor::set_punch_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  942 | 
      |                               
  943 |                 .addFunction ("effective_mouse_mode", &PublicEditor::effective_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  944 | 
      |                               
  945 |                 .addRefFunction ("do_import", &PublicEditor::do_import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  946 |                 .addRefFunction ("do_embed", &PublicEditor::do_embed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  947 | 
      |                               
  948 |                 .addFunction ("export_audio", &PublicEditor::export_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  949 |                 .addFunction ("stem_export", &PublicEditor::stem_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  950 |                 .addFunction ("export_selection", &PublicEditor::export_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  951 |                 .addFunction ("export_range", &PublicEditor::export_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  952 |                 .addFunction ("quick_export", &PublicEditor::quick_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  953 | 
      |                               
  954 |                 .addFunction ("set_zoom_focus", &PublicEditor::set_zoom_focus)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  955 |                 .addFunction ("get_zoom_focus", &PublicEditor::get_zoom_focus)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  956 |                 .addFunction ("get_current_zoom", &PublicEditor::get_current_zoom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  957 |                 .addFunction ("reset_zoom", &PublicEditor::reset_zoom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  958 | 
      |                               
  959 |                 .addFunction ("clear_playlist", &PublicEditor::clear_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  960 |                 .addFunction ("clear_grouped_playlists", &PublicEditor::clear_grouped_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  961 | 
      |                               
  962 |                 .addFunction ("new_playlists_for_grouped_tracks", &PublicEditor::new_playlists_for_grouped_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  963 |                 .addFunction ("new_playlists_for_all_tracks", &PublicEditor::new_playlists_for_all_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  964 |                 .addFunction ("new_playlists_for_armed_tracks", &PublicEditor::new_playlists_for_armed_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  965 |                 .addFunction ("new_playlists_for_selected_tracks", &PublicEditor::new_playlists_for_selected_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  966 | 
      |                               
  967 |                 .addFunction ("select_all_visible_lanes", &PublicEditor::select_all_visible_lanes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  968 |                 .addFunction ("select_all_tracks", &PublicEditor::select_all_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  969 |                 .addFunction ("deselect_all", &PublicEditor::deselect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  970 | 
      |                               
  971 | #if 0 // TimeAxisView&  can't be bound (pure virtual fn)
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  972 |                 .addFunction ("set_selected_track", &PublicEditor::set_selected_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  973 |                 .addFunction ("set_selected_mixer_strip", &PublicEditor::set_selected_mixer_strip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  974 |                 .addFunction ("ensure_time_axis_view_is_visible", &PublicEditor::ensure_time_axis_view_is_visible)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  975 | #endif
      | ~~~~~~                        
  976 |                 .addFunction ("hide_track_in_display", &PublicEditor::hide_track_in_display)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  977 |                 .addFunction ("show_track_in_display", &PublicEditor::show_track_in_display)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  978 |                 .addFunction ("set_visible_track_count", &PublicEditor::set_visible_track_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  979 |                 .addFunction ("fit_selection", &PublicEditor::fit_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  980 | 
      |                               
  981 |                 .addFunction ("regionview_from_region", &PublicEditor::regionview_from_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  982 |                 .addFunction ("set_stationary_playhead", &PublicEditor::set_stationary_playhead)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  983 |                 .addFunction ("stationary_playhead", &PublicEditor::stationary_playhead)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  984 |                 .addFunction ("set_follow_playhead", &PublicEditor::set_follow_playhead)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  985 |                 .addFunction ("follow_playhead", &PublicEditor::follow_playhead)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  986 | 
      |                               
  987 |                 .addFunction ("dragging_playhead", &PublicEditor::dragging_playhead)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  988 |                 .addFunction ("leftmost_sample", &PublicEditor::leftmost_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  989 |                 .addFunction ("current_page_samples", &PublicEditor::current_page_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  990 |                 .addFunction ("visible_canvas_height", &PublicEditor::visible_canvas_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  991 |                 .addFunction ("temporal_zoom_step", &PublicEditor::temporal_zoom_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  992 |                 .addFunction ("override_visible_track_count", &PublicEditor::override_visible_track_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  993 | 
      |                               
  994 |                 .addFunction ("scroll_tracks_down_line", &PublicEditor::scroll_tracks_down_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  995 |                 .addFunction ("scroll_tracks_up_line", &PublicEditor::scroll_tracks_up_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  996 |                 .addFunction ("scroll_down_one_track", &PublicEditor::scroll_down_one_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  997 |                 .addFunction ("scroll_up_one_track", &PublicEditor::scroll_up_one_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  998 | 
      |                               
  999 |                 .addFunction ("reset_x_origin", &PublicEditor::reset_x_origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1000 |                 .addFunction ("get_y_origin", &PublicEditor::get_y_origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1001 |                 .addFunction ("reset_y_origin", &PublicEditor::reset_y_origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1002 | 
      |                               
 1003 |                 .addFunction ("remove_last_capture", &PublicEditor::remove_last_capture)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1004 | 
      |                               
 1005 |                 .addFunction ("maximise_editing_space", &PublicEditor::maximise_editing_space)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1006 |                 .addFunction ("restore_editing_space", &PublicEditor::restore_editing_space)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1007 |                 .addFunction ("toggle_meter_updating", &PublicEditor::toggle_meter_updating)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1008 | 
      |                               
 1009 |                 //.addFunction ("get_preferred_edit_position", &PublicEditor::get_preferred_edit_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1010 |                 //.addFunction ("split_regions_at", &PublicEditor::split_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1011 | 
      |                               
 1012 |                 .addRefFunction ("get_nudge_distance", &PublicEditor::get_nudge_distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1013 |                 .addFunction ("get_paste_offset", &PublicEditor::get_paste_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1014 |                 .addFunction ("get_grid_beat_divisions", &PublicEditor::get_grid_beat_divisions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1015 |                 .addRefFunction ("get_grid_type_as_beats", &PublicEditor::get_grid_type_as_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1016 |                 .addRefFunction ("get_draw_length_as_beats", &PublicEditor::get_draw_length_as_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1017 | 
      |                               
 1018 |                 .addFunction ("toggle_ruler_video", &PublicEditor::toggle_ruler_video)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1019 |                 .addFunction ("toggle_xjadeo_proc", &PublicEditor::toggle_xjadeo_proc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1020 |                 .addFunction ("get_videotl_bar_height", &PublicEditor::get_videotl_bar_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1021 |                 .addFunction ("set_video_timeline_height", &PublicEditor::set_video_timeline_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1022 | 
      |                               
 1023 | #if 0
      | ~~~~~                         
 1024 |                 .addFunction ("get_equivalent_regions", &PublicEditor::get_equivalent_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1025 |                 .addFunction ("drags", &PublicEditor::drags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1026 | #endif
      | ~~~~~~                        
 1027 | 
      |                               
 1028 |                 .addFunction ("get_stripable_time_axis_by_id", &PublicEditor::get_stripable_time_axis_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1029 |                 .addFunction ("get_track_views", &PublicEditor::get_track_views)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1030 |                 .addFunction ("rtav_from_route", &PublicEditor::rtav_from_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1031 |                 .addFunction ("axis_views_from_routes", &PublicEditor::axis_views_from_routes)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'TrackViewList*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::weak_ptr<ARDOUR::Route>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::weak_ptr<ARDOUR::Route>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::weak_ptr<ARDOUR::Route>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::weak_ptr<ARDOUR::Route>; T = std::weak_ptr<ARDOUR::Route>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::weak_ptr<ARDOUR::Route>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::weak_ptr<ARDOUR::Route>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/LuaRef.h:1065:22:   required from 'const luabridge::LuaRef luabridge::LuaRef::operator()(P1, P2, P3, P4) const [with P1 = int; P2 = ARDOUR::Session*; P3 = ARDOUR::RouteGroup*; P4 = std::weak_ptr<ARDOUR::Route>]'
 1065 |     Stack <P4>::push (m_L, p4);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~
../gtk2_ardour/luainstance.cc:2457:44:   required from 'void LuaCallback::proxy_2(LuaSignal::LuaSignal, T, C1, C2) [with T = ARDOUR::Session*; C1 = ARDOUR::RouteGroup*; C2 = std::weak_ptr<ARDOUR::Route>]'
 2457 |                 const luabridge::LuaRef& rv ((*_lua_call)((int)ls, ref, a1, a2));
      |                                              ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:2404:16:   required from 'void LuaCallback::connect_2(LuaSignal::LuaSignal, T, PBD::Signal2<void, C1, C2>*) [with T = ARDOUR::Session*; C1 = ARDOUR::RouteGroup*; C2 = std::weak_ptr<ARDOUR::Route>]'
 2404 |                         boost::bind (&LuaCallback::proxy_2<T, C1, C2>, this, ls, ref, _1, _2),
      |                         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luasignal_syms.h:68:1:   required from 'void LuaCallback::reconnect_object(T) [with T = void*]'
 2369 | #define SESSION(n,c,p) else if (i == LuaSignal::n) { if (_session) { connect_ ## p (LuaSignal::n, _session, &(_session->c)); } }
      |                                                                      ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:2360:19:   required from here
 2360 |         reconnect_object ((void*)0);
      |         ~~~~~~~~~~~~~~~~~^~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::weak_ptr<ARDOUR::Route>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/LuaRef.h:1064:22:   required from 'const luabridge::LuaRef luabridge::LuaRef::operator()(P1, P2, P3, P4) const [with P1 = int; P2 = void*; P3 = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; P4 = PBD::PropertyChange]'
 1064 |     Stack <P3>::push (m_L, p3);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~
../gtk2_ardour/luainstance.cc:2457:44:   required from 'void LuaCallback::proxy_2(LuaSignal::LuaSignal, T, C1, C2) [with T = void*; C1 = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; C2 = const PBD::PropertyChange&]'
 2457 |                 const luabridge::LuaRef& rv ((*_lua_call)((int)ls, ref, a1, a2));
      |                                              ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:2404:16:   required from 'void LuaCallback::connect_2(LuaSignal::LuaSignal, T, PBD::Signal2<void, C1, C2>*) [with T = void*; C1 = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; C2 = const PBD::PropertyChange&]'
 2404 |                         boost::bind (&LuaCallback::proxy_2<T, C1, C2>, this, ls, ref, _1, _2),
      |                         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luasignal_syms.h:85:1:   required from 'void LuaCallback::reconnect_object(T) [with T = void*]'
 2370 | #define STATIC(n,c,p) else if (i == LuaSignal::n) { connect_ ## p (LuaSignal::n, obj, c); }
      |                                                     ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:2360:19:   required from here
 2360 |         reconnect_object ((void*)0);
      |         ~~~~~~~~~~~~~~~~~^~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = PBD::PropertyChange]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = PBD::PropertyChange]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = PBD::PropertyChange; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = PBD::PropertyChange; T = PBD::PropertyChange; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = PBD::PropertyChange; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = PBD::PropertyChange; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/LuaRef.h:1065:22:   required from 'const luabridge::LuaRef luabridge::LuaRef::operator()(P1, P2, P3, P4) const [with P1 = int; P2 = void*; P3 = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; P4 = PBD::PropertyChange]'
 1065 |     Stack <P4>::push (m_L, p4);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~
../gtk2_ardour/luainstance.cc:2457:44:   required from 'void LuaCallback::proxy_2(LuaSignal::LuaSignal, T, C1, C2) [with T = void*; C1 = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; C2 = const PBD::PropertyChange&]'
 2457 |                 const luabridge::LuaRef& rv ((*_lua_call)((int)ls, ref, a1, a2));
      |                                              ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:2404:16:   required from 'void LuaCallback::connect_2(LuaSignal::LuaSignal, T, PBD::Signal2<void, C1, C2>*) [with T = void*; C1 = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; C2 = const PBD::PropertyChange&]'
 2404 |                         boost::bind (&LuaCallback::proxy_2<T, C1, C2>, this, ls, ref, _1, _2),
      |                         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luasignal_syms.h:85:1:   required from 'void LuaCallback::reconnect_object(T) [with T = void*]'
 2370 | #define STATIC(n,c,p) else if (i == LuaSignal::n) { connect_ ## p (LuaSignal::n, obj, c); }
      |                                                     ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:2360:19:   required from here
 2360 |         reconnect_object ((void*)0);
      |         ~~~~~~~~~~~~~~~~~^~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'PBD::PropertyChange*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<std::__cxx11::basic_string<char> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<std::__cxx11::basic_string<char> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<std::__cxx11::basic_string<char> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::vector<std::__cxx11::basic_string<char> >; T = std::vector<std::__cxx11::basic_string<char> >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::vector<std::__cxx11::basic_string<char> >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::vector<std::__cxx11::basic_string<char> >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/LuaRef.h:181:23:   required from 'luabridge::LuaRef::Proxy& luabridge::LuaRef::Proxy::operator=(T) [with T = std::vector<std::__cxx11::basic_string<char> >]'
  181 |       Stack <T>::push (m_L, v);
      |       ~~~~~~~~~~~~~~~~^~~~~~~~
../libs/lua/LuaBridge/detail/FuncArgs.h:48:16:   required from 'static void luabridge::FuncArgs<luabridge::TypeList<Head, Tail>, Start>::refs(luabridge::LuaRef, luabridge::TypeListValues<luabridge::TypeList<Head, Tail> >) [with Head = std::vector<std::__cxx11::basic_string<char> >; Tail = luabridge::TypeList<Editing::ImportDisposition, luabridge::TypeList<Editing::ImportMode, luabridge::TypeList<ARDOUR::SrcQuality, luabridge::TypeList<ARDOUR::MidiTrackNameSource, luabridge::TypeList<ARDOUR::MidiTempoMapDisposition, luabridge::TypeList<Temporal::timepos_t&, luabridge::TypeList<std::shared_ptr<ARDOUR::PluginInfo>, luabridge::TypeList<std::shared_ptr<ARDOUR::Track>, luabridge::TypeList<bool, void> > > > > > > > >; int Start = 0]'
   48 |                 l[Start + 1] = tvl.hd;
../libs/lua/LuaBridge/detail/CFunctions.h:834:34:   required from 'static int luabridge::CFunc::CallMemberRef<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (PublicEditor::*)(std::vector<std::__cxx11::basic_string<char> >, Editing::ImportDisposition, Editing::ImportMode, ARDOUR::SrcQuality, ARDOUR::MidiTrackNameSource, ARDOUR::MidiTempoMapDisposition, Temporal::timepos_t&, std::shared_ptr<ARDOUR::PluginInfo>, std::shared_ptr<ARDOUR::Track>, bool); lua_State = lua_State]'
  834 |       FuncArgs <Params, 0>::refs (v, args);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1091:28:   required from 'static void luabridge::CFunc::CallMemberRefFunctionHelper<MemFnPtr, false>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = void (PublicEditor::*)(std::vector<std::__cxx11::basic_string<char> >, Editing::ImportDisposition, Editing::ImportMode, ARDOUR::SrcQuality, ARDOUR::MidiTrackNameSource, ARDOUR::MidiTempoMapDisposition, Temporal::timepos_t&, std::shared_ptr<ARDOUR::PluginInfo>, std::shared_ptr<ARDOUR::Track>, bool); lua_State = lua_State]'
 1091 |       lua_pushcclosure (L, &CallMemberRef <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1006:98:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addRefFunction(const char*, MemFn) [with MemFn = void (PublicEditor::*)(std::vector<std::__cxx11::basic_string<char> >, Editing::ImportDisposition, Editing::ImportMode, ARDOUR::SrcQuality, ARDOUR::MidiTrackNameSource, ARDOUR::MidiTempoMapDisposition, Temporal::timepos_t&, std::shared_ptr<ARDOUR::PluginInfo>, std::shared_ptr<ARDOUR::Track>, bool); T = PublicEditor]'
 1006 |       CFunc::CallMemberRefFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:945:19:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                                  
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                                  
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                                  
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                                  
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  803 | 
      |                                  
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  809 | 
      |                                  
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  812 | 
      |                                  
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  820 | 
      |                                  
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  823 | 
      |                                  
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  826 | 
      |                                  
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  829 | 
      |                                  
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  835 | 
      |                                  
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  840 | 
      |                                  
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  843 | 
      |                                  
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  848 | 
      |                                  
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  852 | 
      |                                  
  853 |                 // std::list<TimeAxisView*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 |                 .beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  855 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  856 | 
      |                                  
  857 | 
      |                                  
  858 |                 .beginClass <RegionSelection> ("RegionSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  859 |                 .addFunction ("start_time", &RegionSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("end_time", &RegionSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("n_midi_regions", &RegionSelection::n_midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("regionlist", &RegionSelection::regionlist) // XXX check windows binding (libardour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  864 | 
      |                                  
  865 |                 .deriveClass <TimeSelection, std::list<ARDOUR::TimelineRange> > ("TimeSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  866 |                 .addFunction ("start_time", &TimeSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("end_time", &TimeSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("start_sample", &TimeSelection::start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 |                 .addFunction ("end_sample", &TimeSelection::end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  870 |                 .addFunction ("length", &TimeSelection::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  872 | 
      |                                  
  873 |                 .deriveClass <MarkerSelection, std::list<ArdourMarker*> > ("MarkerSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  874 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  875 | 
      |                                  
  876 |                 .beginClass <TrackViewList> ("TrackViewList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 |                 .addCast<std::list<TimeAxisView*> > ("to_tav_list")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  878 |                 .addFunction ("contains", &TrackViewList::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("routelist", &TrackViewList::routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  880 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  881 | 
      |                                  
  882 |                 .deriveClass <TrackSelection, TrackViewList> ("TrackSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  883 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  884 | 
      |                                  
  885 |                 .beginClass <Selection> ("Selection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  886 |                 .addFunction ("clear", &Selection::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .addFunction ("clear_all", &Selection::clear_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  888 |                 .addFunction ("empty", &Selection::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  889 |                 .addData ("tracks", &Selection::tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  890 |                 .addData ("regions", &Selection::regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  891 |                 .addData ("time", &Selection::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  892 |                 .addData ("markers", &Selection::markers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  893 | #if 0
      | ~~~~~                            
  894 |                 .addData ("lines", &Selection::lines)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  895 |                 .addData ("playlists", &Selection::playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  896 |                 .addData ("points", &Selection::points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  897 |                 .addData ("midi_regions", &Selection::midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  898 |                 .addData ("midi_notes", &Selection::midi_notes) // cut buffer only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  899 | #endif
      | ~~~~~~                           
  900 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  901 | 
      |                                  
  902 |                 .beginClass <PublicEditor> ("Editor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  903 |                 .addFunction ("grid_type", &PublicEditor::grid_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  904 |                 .addFunction ("snap_mode", &PublicEditor::snap_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  905 |                 .addFunction ("set_snap_mode", &PublicEditor::set_snap_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  906 | 
      |                                  
  907 |                 .addFunction ("undo", &PublicEditor::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  908 |                 .addFunction ("redo", &PublicEditor::redo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  909 | 
      |                                  
  910 |                 .addFunction ("set_mouse_mode", &PublicEditor::set_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  911 |                 .addFunction ("current_mouse_mode", &PublicEditor::current_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  912 | 
      |                                  
  913 |                 .addFunction ("consider_auditioning", &PublicEditor::consider_auditioning)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  914 | 
      |                                  
  915 |                 .addFunction ("new_region_from_selection", &PublicEditor::new_region_from_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  916 |                 .addFunction ("separate_region_from_selection", &PublicEditor::separate_region_from_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  917 |                 .addFunction ("pixel_to_sample", &PublicEditor::pixel_to_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  918 |                 .addFunction ("sample_to_pixel", &PublicEditor::sample_to_pixel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  919 | 
      |                                  
  920 |                 .addFunction ("get_selection", &PublicEditor::get_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  921 |                 .addFunction ("get_cut_buffer", &PublicEditor::get_cut_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  922 |                 .addRefFunction ("get_selection_extents", &PublicEditor::get_selection_extents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  923 | 
      |                                  
  924 |                 .addFunction ("current_mixer_stripable", &PublicEditor::current_mixer_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  925 | 
      |                                  
  926 |                 .addFunction ("set_selection", &PublicEditor::set_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  927 | 
      |                                  
  928 |                 .addFunction ("play_selection", &PublicEditor::play_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  929 |                 .addFunction ("play_with_preroll", &PublicEditor::play_with_preroll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  930 |                 .addFunction ("maybe_locate_with_edit_preroll", &PublicEditor::maybe_locate_with_edit_preroll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  931 |                 .addFunction ("goto_nth_marker", &PublicEditor::goto_nth_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  932 | 
      |                                  
  933 |                 .addFunction ("add_location_from_playhead_cursor", &PublicEditor::add_location_from_playhead_cursor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  934 |                 .addFunction ("remove_location_at_playhead_cursor", &PublicEditor::remove_location_at_playhead_cursor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  935 |                 .addFunction ("add_location_mark", &PublicEditor::add_location_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  936 | 
      |                                  
  937 |                 .addFunction ("update_grid", &PublicEditor::update_grid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  938 |                 .addFunction ("remove_tracks", &PublicEditor::remove_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  939 | 
      |                                  
  940 |                 .addFunction ("set_loop_range", &PublicEditor::set_loop_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  941 |                 .addFunction ("set_punch_range", &PublicEditor::set_punch_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  942 | 
      |                                  
  943 |                 .addFunction ("effective_mouse_mode", &PublicEditor::effective_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  944 | 
      |                                  
  945 |                 .addRefFunction ("do_import", &PublicEditor::do_import)
      |                 ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<std::__cxx11::basic_string<char> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::PluginInfo>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::PluginInfo>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::PluginInfo>; T = std::shared_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../libs/lua/LuaBridge/detail/FuncArgs.h:49:38:   recursively required from 'static void luabridge::FuncArgs<luabridge::TypeList<Head, Tail>, Start>::refs(luabridge::LuaRef, luabridge::TypeListValues<luabridge::TypeList<Head, Tail> >) [with Head = Editing::ImportDisposition; Tail = luabridge::TypeList<Editing::ImportMode, luabridge::TypeList<Temporal::timepos_t&, luabridge::TypeList<std::shared_ptr<ARDOUR::PluginInfo>, luabridge::TypeList<std::shared_ptr<ARDOUR::Track>, void> > > >; int Start = 1]'
   49 |     FuncArgs <Tail, Start + 1>::refs (l, tvl.tl);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/FuncArgs.h:49:38:   required from 'static void luabridge::FuncArgs<luabridge::TypeList<Head, Tail>, Start>::refs(luabridge::LuaRef, luabridge::TypeListValues<luabridge::TypeList<Head, Tail> >) [with Head = std::vector<std::__cxx11::basic_string<char> >; Tail = luabridge::TypeList<Editing::ImportDisposition, luabridge::TypeList<Editing::ImportMode, luabridge::TypeList<Temporal::timepos_t&, luabridge::TypeList<std::shared_ptr<ARDOUR::PluginInfo>, luabridge::TypeList<std::shared_ptr<ARDOUR::Track>, void> > > > >; int Start = 0]'
../libs/lua/LuaBridge/detail/CFunctions.h:834:34:   required from 'static int luabridge::CFunc::CallMemberRef<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (PublicEditor::*)(std::vector<std::__cxx11::basic_string<char> >, Editing::ImportDisposition, Editing::ImportMode, Temporal::timepos_t&, std::shared_ptr<ARDOUR::PluginInfo>, std::shared_ptr<ARDOUR::Track>); lua_State = lua_State]'
  834 |       FuncArgs <Params, 0>::refs (v, args);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1091:28:   required from 'static void luabridge::CFunc::CallMemberRefFunctionHelper<MemFnPtr, false>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = void (PublicEditor::*)(std::vector<std::__cxx11::basic_string<char> >, Editing::ImportDisposition, Editing::ImportMode, Temporal::timepos_t&, std::shared_ptr<ARDOUR::PluginInfo>, std::shared_ptr<ARDOUR::Track>); lua_State = lua_State]'
 1091 |       lua_pushcclosure (L, &CallMemberRef <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1006:98:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addRefFunction(const char*, MemFn) [with MemFn = void (PublicEditor::*)(std::vector<std::__cxx11::basic_string<char> >, Editing::ImportDisposition, Editing::ImportMode, Temporal::timepos_t&, std::shared_ptr<ARDOUR::PluginInfo>, std::shared_ptr<ARDOUR::Track>); T = PublicEditor]'
 1006 |       CFunc::CallMemberRefFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:946:19:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                                  
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                                  
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                                  
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                                  
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  803 | 
      |                                  
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  809 | 
      |                                  
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  812 | 
      |                                  
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  820 | 
      |                                  
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  823 | 
      |                                  
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  826 | 
      |                                  
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  829 | 
      |                                  
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  835 | 
      |                                  
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  840 | 
      |                                  
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  843 | 
      |                                  
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  848 | 
      |                                  
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  852 | 
      |                                  
  853 |                 // std::list<TimeAxisView*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 |                 .beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  855 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  856 | 
      |                                  
  857 | 
      |                                  
  858 |                 .beginClass <RegionSelection> ("RegionSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  859 |                 .addFunction ("start_time", &RegionSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("end_time", &RegionSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("n_midi_regions", &RegionSelection::n_midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("regionlist", &RegionSelection::regionlist) // XXX check windows binding (libardour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  864 | 
      |                                  
  865 |                 .deriveClass <TimeSelection, std::list<ARDOUR::TimelineRange> > ("TimeSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  866 |                 .addFunction ("start_time", &TimeSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("end_time", &TimeSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("start_sample", &TimeSelection::start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 |                 .addFunction ("end_sample", &TimeSelection::end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  870 |                 .addFunction ("length", &TimeSelection::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  872 | 
      |                                  
  873 |                 .deriveClass <MarkerSelection, std::list<ArdourMarker*> > ("MarkerSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  874 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  875 | 
      |                                  
  876 |                 .beginClass <TrackViewList> ("TrackViewList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 |                 .addCast<std::list<TimeAxisView*> > ("to_tav_list")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  878 |                 .addFunction ("contains", &TrackViewList::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("routelist", &TrackViewList::routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  880 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  881 | 
      |                                  
  882 |                 .deriveClass <TrackSelection, TrackViewList> ("TrackSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  883 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  884 | 
      |                                  
  885 |                 .beginClass <Selection> ("Selection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  886 |                 .addFunction ("clear", &Selection::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .addFunction ("clear_all", &Selection::clear_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  888 |                 .addFunction ("empty", &Selection::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  889 |                 .addData ("tracks", &Selection::tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  890 |                 .addData ("regions", &Selection::regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  891 |                 .addData ("time", &Selection::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  892 |                 .addData ("markers", &Selection::markers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  893 | #if 0
      | ~~~~~                            
  894 |                 .addData ("lines", &Selection::lines)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  895 |                 .addData ("playlists", &Selection::playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  896 |                 .addData ("points", &Selection::points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  897 |                 .addData ("midi_regions", &Selection::midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  898 |                 .addData ("midi_notes", &Selection::midi_notes) // cut buffer only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  899 | #endif
      | ~~~~~~                           
  900 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  901 | 
      |                                  
  902 |                 .beginClass <PublicEditor> ("Editor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  903 |                 .addFunction ("grid_type", &PublicEditor::grid_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  904 |                 .addFunction ("snap_mode", &PublicEditor::snap_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  905 |                 .addFunction ("set_snap_mode", &PublicEditor::set_snap_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  906 | 
      |                                  
  907 |                 .addFunction ("undo", &PublicEditor::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  908 |                 .addFunction ("redo", &PublicEditor::redo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  909 | 
      |                                  
  910 |                 .addFunction ("set_mouse_mode", &PublicEditor::set_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  911 |                 .addFunction ("current_mouse_mode", &PublicEditor::current_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  912 | 
      |                                  
  913 |                 .addFunction ("consider_auditioning", &PublicEditor::consider_auditioning)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  914 | 
      |                                  
  915 |                 .addFunction ("new_region_from_selection", &PublicEditor::new_region_from_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  916 |                 .addFunction ("separate_region_from_selection", &PublicEditor::separate_region_from_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  917 |                 .addFunction ("pixel_to_sample", &PublicEditor::pixel_to_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  918 |                 .addFunction ("sample_to_pixel", &PublicEditor::sample_to_pixel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  919 | 
      |                                  
  920 |                 .addFunction ("get_selection", &PublicEditor::get_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  921 |                 .addFunction ("get_cut_buffer", &PublicEditor::get_cut_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  922 |                 .addRefFunction ("get_selection_extents", &PublicEditor::get_selection_extents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  923 | 
      |                                  
  924 |                 .addFunction ("current_mixer_stripable", &PublicEditor::current_mixer_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  925 | 
      |                                  
  926 |                 .addFunction ("set_selection", &PublicEditor::set_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  927 | 
      |                                  
  928 |                 .addFunction ("play_selection", &PublicEditor::play_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  929 |                 .addFunction ("play_with_preroll", &PublicEditor::play_with_preroll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  930 |                 .addFunction ("maybe_locate_with_edit_preroll", &PublicEditor::maybe_locate_with_edit_preroll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  931 |                 .addFunction ("goto_nth_marker", &PublicEditor::goto_nth_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  932 | 
      |                                  
  933 |                 .addFunction ("add_location_from_playhead_cursor", &PublicEditor::add_location_from_playhead_cursor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  934 |                 .addFunction ("remove_location_at_playhead_cursor", &PublicEditor::remove_location_at_playhead_cursor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  935 |                 .addFunction ("add_location_mark", &PublicEditor::add_location_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  936 | 
      |                                  
  937 |                 .addFunction ("update_grid", &PublicEditor::update_grid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  938 |                 .addFunction ("remove_tracks", &PublicEditor::remove_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  939 | 
      |                                  
  940 |                 .addFunction ("set_loop_range", &PublicEditor::set_loop_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  941 |                 .addFunction ("set_punch_range", &PublicEditor::set_punch_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  942 | 
      |                                  
  943 |                 .addFunction ("effective_mouse_mode", &PublicEditor::effective_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  944 | 
      |                                  
  945 |                 .addRefFunction ("do_import", &PublicEditor::do_import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  946 |                 .addRefFunction ("do_embed", &PublicEditor::do_embed)
      |                 ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::PluginInfo>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Track>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Track>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Track>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Track>; T = std::shared_ptr<ARDOUR::Track>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Track>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../libs/lua/LuaBridge/detail/FuncArgs.h:49:38:   recursively required from 'static void luabridge::FuncArgs<luabridge::TypeList<Head, Tail>, Start>::refs(luabridge::LuaRef, luabridge::TypeListValues<luabridge::TypeList<Head, Tail> >) [with Head = Editing::ImportDisposition; Tail = luabridge::TypeList<Editing::ImportMode, luabridge::TypeList<Temporal::timepos_t&, luabridge::TypeList<std::shared_ptr<ARDOUR::PluginInfo>, luabridge::TypeList<std::shared_ptr<ARDOUR::Track>, void> > > >; int Start = 1]'
   49 |     FuncArgs <Tail, Start + 1>::refs (l, tvl.tl);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/FuncArgs.h:49:38:   required from 'static void luabridge::FuncArgs<luabridge::TypeList<Head, Tail>, Start>::refs(luabridge::LuaRef, luabridge::TypeListValues<luabridge::TypeList<Head, Tail> >) [with Head = std::vector<std::__cxx11::basic_string<char> >; Tail = luabridge::TypeList<Editing::ImportDisposition, luabridge::TypeList<Editing::ImportMode, luabridge::TypeList<Temporal::timepos_t&, luabridge::TypeList<std::shared_ptr<ARDOUR::PluginInfo>, luabridge::TypeList<std::shared_ptr<ARDOUR::Track>, void> > > > >; int Start = 0]'
../libs/lua/LuaBridge/detail/CFunctions.h:834:34:   required from 'static int luabridge::CFunc::CallMemberRef<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (PublicEditor::*)(std::vector<std::__cxx11::basic_string<char> >, Editing::ImportDisposition, Editing::ImportMode, Temporal::timepos_t&, std::shared_ptr<ARDOUR::PluginInfo>, std::shared_ptr<ARDOUR::Track>); lua_State = lua_State]'
  834 |       FuncArgs <Params, 0>::refs (v, args);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1091:28:   required from 'static void luabridge::CFunc::CallMemberRefFunctionHelper<MemFnPtr, false>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = void (PublicEditor::*)(std::vector<std::__cxx11::basic_string<char> >, Editing::ImportDisposition, Editing::ImportMode, Temporal::timepos_t&, std::shared_ptr<ARDOUR::PluginInfo>, std::shared_ptr<ARDOUR::Track>); lua_State = lua_State]'
 1091 |       lua_pushcclosure (L, &CallMemberRef <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1006:98:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addRefFunction(const char*, MemFn) [with MemFn = void (PublicEditor::*)(std::vector<std::__cxx11::basic_string<char> >, Editing::ImportDisposition, Editing::ImportMode, Temporal::timepos_t&, std::shared_ptr<ARDOUR::PluginInfo>, std::shared_ptr<ARDOUR::Track>); T = PublicEditor]'
 1006 |       CFunc::CallMemberRefFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../gtk2_ardour/luainstance.cc:946:19:   required from here
  792 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .beginNamespace ("ArdourUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  794 | 
      |                                  
  795 |                 .addFunction ("http_get", &http_get_unlogged)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 | 
      |                                  
  797 |                 .addFunction ("mixer_screenshot", &mixer_screenshot)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 | 
      |                                  
  799 |                 .addFunction ("processor_selection", &LuaMixer::processor_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 | 
      |                                  
  801 |                 .beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  802 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  803 | 
      |                                  
  804 |                 .beginClass <ArdourMarker> ("ArdourMarker")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .addFunction ("name", &ArdourMarker::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addFunction ("position", &ArdourMarker::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addFunction ("_type", &ArdourMarker::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  809 | 
      |                                  
  810 |                 .beginClass <AxisView> ("AxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  811 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  812 | 
      |                                  
  813 |                 .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .addFunction ("order", &TimeAxisView::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  815 |                 .addFunction ("y_position", &TimeAxisView::y_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  816 |                 .addFunction ("effective_height", &TimeAxisView::effective_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("current_height", &TimeAxisView::current_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("set_height", &TimeAxisView::set_height)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  820 | 
      |                                  
  821 |                 .deriveClass <StripableTimeAxisView, TimeAxisView> ("StripableTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  823 | 
      |                                  
  824 |                 .beginClass <Selectable> ("Selectable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  826 | 
      |                                  
  827 |                 .deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  829 | 
      |                                  
  830 |                 .deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  831 |                 .addCast<AudioRegionView> ("to_audioregionview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .addFunction ("show_region_editor", &RegionView::show_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  833 |                 .addFunction ("hide_region_editor", &RegionView::hide_region_editor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  834 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  835 | 
      |                                  
  836 |                 .deriveClass <AudioRegionView, RegionView> ("RegionView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                 .addFunction ("set_region_gain_line", &AudioRegionView::set_region_gain_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  838 |                 .addFunction ("set_region_fx_line", (bool (AudioRegionView::*)(uint32_t, uint32_t))&AudioRegionView::set_region_fx_line)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  840 | 
      |                                  
  841 |                 .deriveClass <RouteUI, Selectable> ("RouteUI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  843 | 
      |                                  
  844 |                 .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addCast<StripableTimeAxisView> ("to_stripabletimeaxisview")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 |                 .addCast<TimeAxisView> ("to_timeaxisview") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  847 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  848 | 
      |                                  
  849 |                 // std::list<Selectable*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  850 |                 .beginStdCPtrList <Selectable> ("SelectionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  852 | 
      |                                  
  853 |                 // std::list<TimeAxisView*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 |                 .beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  855 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  856 | 
      |                                  
  857 | 
      |                                  
  858 |                 .beginClass <RegionSelection> ("RegionSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  859 |                 .addFunction ("start_time", &RegionSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("end_time", &RegionSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("n_midi_regions", &RegionSelection::n_midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("regionlist", &RegionSelection::regionlist) // XXX check windows binding (libardour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  864 | 
      |                                  
  865 |                 .deriveClass <TimeSelection, std::list<ARDOUR::TimelineRange> > ("TimeSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  866 |                 .addFunction ("start_time", &TimeSelection::start_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("end_time", &TimeSelection::end_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("start_sample", &TimeSelection::start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 |                 .addFunction ("end_sample", &TimeSelection::end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  870 |                 .addFunction ("length", &TimeSelection::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  872 | 
      |                                  
  873 |                 .deriveClass <MarkerSelection, std::list<ArdourMarker*> > ("MarkerSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  874 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  875 | 
      |                                  
  876 |                 .beginClass <TrackViewList> ("TrackViewList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 |                 .addCast<std::list<TimeAxisView*> > ("to_tav_list")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  878 |                 .addFunction ("contains", &TrackViewList::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("routelist", &TrackViewList::routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  880 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  881 | 
      |                                  
  882 |                 .deriveClass <TrackSelection, TrackViewList> ("TrackSelection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  883 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  884 | 
      |                                  
  885 |                 .beginClass <Selection> ("Selection")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  886 |                 .addFunction ("clear", &Selection::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .addFunction ("clear_all", &Selection::clear_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  888 |                 .addFunction ("empty", &Selection::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  889 |                 .addData ("tracks", &Selection::tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  890 |                 .addData ("regions", &Selection::regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  891 |                 .addData ("time", &Selection::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  892 |                 .addData ("markers", &Selection::markers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  893 | #if 0
      | ~~~~~                            
  894 |                 .addData ("lines", &Selection::lines)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  895 |                 .addData ("playlists", &Selection::playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  896 |                 .addData ("points", &Selection::points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  897 |                 .addData ("midi_regions", &Selection::midi_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  898 |                 .addData ("midi_notes", &Selection::midi_notes) // cut buffer only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  899 | #endif
      | ~~~~~~                           
  900 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
  901 | 
      |                                  
  902 |                 .beginClass <PublicEditor> ("Editor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  903 |                 .addFunction ("grid_type", &PublicEditor::grid_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  904 |                 .addFunction ("snap_mode", &PublicEditor::snap_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  905 |                 .addFunction ("set_snap_mode", &PublicEditor::set_snap_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  906 | 
      |                                  
  907 |                 .addFunction ("undo", &PublicEditor::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  908 |                 .addFunction ("redo", &PublicEditor::redo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  909 | 
      |                                  
  910 |                 .addFunction ("set_mouse_mode", &PublicEditor::set_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  911 |                 .addFunction ("current_mouse_mode", &PublicEditor::current_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  912 | 
      |                                  
  913 |                 .addFunction ("consider_auditioning", &PublicEditor::consider_auditioning)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  914 | 
      |                                  
  915 |                 .addFunction ("new_region_from_selection", &PublicEditor::new_region_from_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  916 |                 .addFunction ("separate_region_from_selection", &PublicEditor::separate_region_from_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  917 |                 .addFunction ("pixel_to_sample", &PublicEditor::pixel_to_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  918 |                 .addFunction ("sample_to_pixel", &PublicEditor::sample_to_pixel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  919 | 
      |                                  
  920 |                 .addFunction ("get_selection", &PublicEditor::get_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  921 |                 .addFunction ("get_cut_buffer", &PublicEditor::get_cut_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  922 |                 .addRefFunction ("get_selection_extents", &PublicEditor::get_selection_extents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  923 | 
      |                                  
  924 |                 .addFunction ("current_mixer_stripable", &PublicEditor::current_mixer_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  925 | 
      |                                  
  926 |                 .addFunction ("set_selection", &PublicEditor::set_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  927 | 
      |                                  
  928 |                 .addFunction ("play_selection", &PublicEditor::play_selection)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  929 |                 .addFunction ("play_with_preroll", &PublicEditor::play_with_preroll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  930 |                 .addFunction ("maybe_locate_with_edit_preroll", &PublicEditor::maybe_locate_with_edit_preroll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  931 |                 .addFunction ("goto_nth_marker", &PublicEditor::goto_nth_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  932 | 
      |                                  
  933 |                 .addFunction ("add_location_from_playhead_cursor", &PublicEditor::add_location_from_playhead_cursor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  934 |                 .addFunction ("remove_location_at_playhead_cursor", &PublicEditor::remove_location_at_playhead_cursor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  935 |                 .addFunction ("add_location_mark", &PublicEditor::add_location_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  936 | 
      |                                  
  937 |                 .addFunction ("update_grid", &PublicEditor::update_grid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  938 |                 .addFunction ("remove_tracks", &PublicEditor::remove_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  939 | 
      |                                  
  940 |                 .addFunction ("set_loop_range", &PublicEditor::set_loop_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  941 |                 .addFunction ("set_punch_range", &PublicEditor::set_punch_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  942 | 
      |                                  
  943 |                 .addFunction ("effective_mouse_mode", &PublicEditor::effective_mouse_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  944 | 
      |                                  
  945 |                 .addRefFunction ("do_import", &PublicEditor::do_import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  946 |                 .addRefFunction ("do_embed", &PublicEditor::do_embed)
      |                 ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Track>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../libs/lua/LuaBridge/LuaBridge.h:71:
In static member function 'static R luabridge::FuncTraits<R (T::*)(P1), D>::call(T*, D, luabridge::TypeListValues<luabridge::TypeList<P2> >&) [with T = std::vector<double>; R = void; P1 = const double&; D = void (std::vector<double>::*)(const double&)]',
    inlined from 'static int luabridge::CFunc::CallMember<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (std::vector<double>::*)(const double&)]' at ../libs/lua/LuaBridge/detail/CFunctions.h:735:35:
../libs/lua/LuaBridge/detail/FuncTraits.h:261:22: warning: using a dangling pointer to an unnamed temporary [-Wdangling-pointer=]
  261 |     return (obj->*fp)(tvl.hd);
      |            ~~~~~~~~~~^~~~~~~~
In file included from ../libs/lua/LuaBridge/LuaBridge.h:70:
../libs/lua/LuaBridge/detail/TypeList.h: In static member function 'static int luabridge::CFunc::CallMember<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (std::vector<double>::*)(const double&)]':
../libs/lua/LuaBridge/detail/TypeList.h:127:74: note: unnamed temporary defined here
  127 |                                             ArgList <Tail, Start + 1> (L))
      |                                                                          ^

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/ardour_ui_ed.cc:57:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/types.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/accelmap.h:28,
                 from ../gtk2_ardour/ardour_ui_ed.cc:41:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/refptr.h:21,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:21,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from /usr/include/glibmm-2.4/glibmm/miscutils.h:23,
                 from ../gtk2_ardour/ardour_ui_ed.cc:40:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../gtk2_ardour/ardour_ui_ed.cc:42:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/varianttype.h:24,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:24,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/ardour_ui_ed.cc:51:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../gtk2_ardour/ardour_ui.h:77,
                 from ../gtk2_ardour/editor.cc:42:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:32,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/box.h:44,
                 from ../gtk2_ardour/ardour_ui.h:52:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/pbd/pbd/xml++.h:44,
                 from ../gtk2_ardour/ardour_ui.h:51:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdkapplaunchcontext.h:30,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:32:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../gtk2_ardour/ardour_ui.h:65:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../gtk2_ardour/editor_actions.cc:39:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ytk/ytk/gtk/gtkiconfactory.h:34,
                 from ../gtk2_ardour/editor_actions.cc:30:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from ../gtk2_ardour/editor_actions.cc:29:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetentry.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/targetlist.h:29,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/widget.h:47,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/action.h:30,
                 from ../libs/gtkmm2ext/gtkmm2ext/bindings.h:30,
                 from ../gtk2_ardour/editor_actions.cc:34:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/entry.h:37,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeview.h:42,
                 from ../libs/gtkmm2ext/gtkmm2ext/utils.h:38,
                 from ../gtk2_ardour/editor_actions.cc:35:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

../libs/aaf/AAFToText.c: In function 'aaft_TimestampToText':
../libs/aaf/AAFToText.c:120:21: warning: unused variable 'rc' [-Wunused-variable]
  120 |                 int rc = snprintf (str, sizeof (str), "%04i-%02u-%02u %02u:%02u:%02u.%02u",
      |                     ^~
../libs/aaf/AAFToText.c: In function 'aaft_VersionToText':
../libs/aaf/AAFToText.c:146:21: warning: unused variable 'rc' [-Wunused-variable]
  146 |                 int rc = snprintf (str, sizeof (str), "%i.%i",
      |                     ^~
../libs/aaf/AAFToText.c: In function 'aaft_ProductVersionToText':
../libs/aaf/AAFToText.c:167:21: warning: unused variable 'rc' [-Wunused-variable]
  167 |                 int rc = snprintf (str, sizeof (str), "%u.%u.%u.%u %s (%i)",
      |                     ^~
../libs/aaf/AAFToText.c: In function 'aaft_DataDefToText':
../libs/aaf/AAFToText.c:956:29: warning: unused variable 'rc' [-Wunused-variable]
  956 |                         int rc = snprintf (TEXTDataDef, sizeof (TEXTDataDef), "%s", name);
      |                             ^~
../libs/aaf/AAFToText.c: In function 'aaft_OperationDefToText':
../libs/aaf/AAFToText.c:1056:29: warning: unused variable 'rc' [-Wunused-variable]
 1056 |                         int rc = snprintf (TEXTOperationDef, sizeof (TEXTOperationDef), "%s", name);
      |                             ^~
../libs/aaf/AAFToText.c: In function 'aaft_ParameterToText':
../libs/aaf/AAFToText.c:1248:29: warning: unused variable 'rc' [-Wunused-variable]
 1248 |                         int rc = snprintf (TEXTParameterDef, sizeof (TEXTParameterDef), "%s", name);
      |                             ^~
../libs/aaf/AAFToText.c: In function 'aaft_PIDToText':
../libs/aaf/AAFToText.c:2002:37: warning: unused variable 'rc' [-Wunused-variable]
 2002 |                                 int rc = snprintf (PIDText, sizeof (PIDText), "%s%s%s",
      |                                     ^~
../libs/aaf/AAFToText.c: In function 'aaft_ClassIDToText':
../libs/aaf/AAFToText.c:2241:29: warning: unused variable 'rc' [-Wunused-variable]
 2241 |                         int rc = snprintf (ClassIDText, sizeof (ClassIDText), "%s%s%s",
      |                             ^~
../libs/aaf/AAFToText.c: In function 'aaft_IndirectValueToText':
../libs/aaf/AAFToText.c:2268:13: warning: variable 'rc' set but not used [-Wunused-but-set-variable]
 2268 |         int rc = 0;
      |             ^~

[1775/1835] Linking build/libs/aaf/libaaf.so
In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/plugin_manager.h:39,
                 from ../gtk2_ardour/rc_option_editor.cc:58:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf.h:35,
                 from ../libs/tk/ydk/ydk/gdk/gdkpixbuf.h:37,
                 from ../libs/tk/ydk/ydk/gdk/gdkcairo.h:28,
                 from ../libs/tk/ydk/ydk/gdk/gdk.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/region.h:49,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/screen.h:33,
                 from ../libs/tk/ydkmm/ydkmm/gdkmm/display.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/selectiondata.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treedragdest.h:30,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/liststore.h:29,
                 from ../gtk2_ardour/rc_option_editor.cc:36:
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:98:113: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   98 |                                                                               const GTimeVal         *start_time);
      |                                                                                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/liststore.h:7:
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
../libs/tk/ydk-pixbuf/ydk-pixbuf/gdk-pixbuf/gdk-pixbuf-animation.h:104:115: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 |                                                                               const GTimeVal         *current_time);
      |                                                                                                                   ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtkobject.h:37,
                 from ../libs/tk/ytk/ytk/gtk/gtkwidget.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkcontainer.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkbin.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkwindow.h:36,
                 from ../libs/tk/ytk/ytk/gtk/gtkdialog.h:35,
                 from ../libs/tk/ytk/ytk/gtk/gtkaboutdialog.h:32,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treeiter.h:34,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treemodel.h:31,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treedragdest.h:31:
../libs/tk/ytk/ytk/gtk/gtktypeutils.h:236:64: warning: 'GTypeDebugFlags' is deprecated [-Wdeprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glibmm-2.4/glibmm/class.h:24,
                 from /usr/include/glibmm-2.4/glibmm/objectbase.h:21,
                 from /usr/include/glibmm-2.4/glibmm/object.h:29,
                 from /usr/include/glibmm-2.4/glibmm/interface.h:20,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/treedragdest.h:29:
/usr/include/glib-2.0/gobject/gtype.h:731:3: note: declared here
  731 | } GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from ../libs/tk/ytk/ytk/gtk/gtktoolitem.h:31,
                 from ../libs/tk/ytk/ytk/gtk/gtktoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtkmenutoolbutton.h:30,
                 from ../libs/tk/ytk/ytk/gtk/gtk.h:125:
../libs/tk/ytk/ytk/gtk/gtktooltips.h:73:12: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from ../libs/tk/ytkmm/ytkmm/gtkmm/image.h:33,
                 from ../libs/tk/ytkmm/ytkmm/gtkmm/stock.h:27,
                 from ../gtk2_ardour/rc_option_editor.cc:37:
../libs/tk/ydkmm/ydkmm/gdkmm/pixbufanimation.h:124:72: warning: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
/usr/include/glib-2.0/glib/gtypes.h:578:26: note: declared here
  578 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~

In file included from ../libs/ardour/ardour/plugin.h:37,
                 from ../libs/ardour/ardour/session.h:91,
                 from ../libs/ardour/ardour/lua_api.h:36,
                 from ../libs/ardour/luabindings.cc:63:
../libs/ardour/ardour/cycles.h:238:2: warning: #warning You are compiling libardour on a platform for which ardour/cycles.h needs work [-Wcpp]
  238 | #warning You are compiling libardour on a platform for which ardour/cycles.h needs work
      |  ^~~~~~~
In file included from ../libs/ardour/ardour/disk_io.h:32,
                 from ../libs/ardour/ardour/disk_reader.h:29,
                 from ../libs/ardour/luabindings.cc:53:
../libs/ardour/ardour/rt_midibuffer.h: In member function 'const uint8_t* ARDOUR::RTMidiBuffer::bytes(const Item&, uint32_t&)':
../libs/ardour/ardour/rt_midibuffer.h:93:38: warning: cast from 'uint8_t*' {aka 'unsigned char*'} to 'ARDOUR::RTMidiBuffer::Blob*' increases required alignment of target type [-Wcast-align]
   93 |                         Blob* blob = reinterpret_cast<Blob*> (&_pool[offset]);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../libs/lua/LuaBridge/LuaBridge.h:151,
                 from ../libs/ardour/luabindings.cc:113:
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = PBD::ID]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = PBD::ID]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = PBD::ID; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<std::__cxx11::basic_string<char>, void>; T = PBD::ID; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(std::__cxx11::basic_string<char>); T = PBD::ID]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:493:44:   required from here
  486 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  487 |                 .beginNamespace ("PBD")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~                   
  488 | 
      |                                                           
  489 |                 .addFunction ("open_uri", (bool (*) (const std::string&))&PBD::open_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  490 |                 .addFunction ("open_uri", &PBD::open_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  491 | 
      |                                                           
  492 |                 .beginClass <PBD::ID> ("ID")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  493 |                 .addConstructor <void (*) (std::string)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'PBD::ID*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = PBD::RingBufferNPT<unsigned char>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = PBD::RingBufferNPT<unsigned char>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = PBD::RingBufferNPT<unsigned char>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<long unsigned int, void>; T = PBD::RingBufferNPT<unsigned char>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(long unsigned int); T = PBD::RingBufferNPT<unsigned char>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:557:39:   required from here
  486 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  487 |                 .beginNamespace ("PBD")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~              
  488 | 
      |                                                      
  489 |                 .addFunction ("open_uri", (bool (*) (const std::string&))&PBD::open_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  490 |                 .addFunction ("open_uri", &PBD::open_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  491 | 
      |                                                      
  492 |                 .beginClass <PBD::ID> ("ID")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  493 |                 .addConstructor <void (*) (std::string)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  494 |                 .addFunction ("to_s", &PBD::ID::to_s) // TODO special case LUA __tostring ?
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  495 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  496 | 
      |                                                      
  497 |                 .beginStdVector <PBD::ID> ("IdVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  498 | 
      |                                                      
  499 |                 .beginClass <XMLNode> ("XMLNode")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  500 |                 .addFunction ("name", &XMLNode::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  501 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  502 | 
      |                                                      
  503 |                 .beginClass <PBD::Progress> ("Progress")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  504 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  505 | 
      |                                                      
  506 |                 .beginClass <PBD::Stateful> ("Stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  507 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  508 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  509 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  510 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  511 | 
      |                                                      
  512 |                 .beginWSPtrClass <PBD::Stateful> ("StatefulPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  513 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  514 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  515 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  516 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  517 | 
      |                                                      
  518 |                 .deriveClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  519 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  520 | 
      |                                                      
  521 |                 .deriveClass <PBD::Configuration, PBD::Stateful> ("Configuration")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  522 |                 .endClass()
      |                 ~~~~~~~~~~~                          
  523 | 
      |                                                      
  524 |                 .deriveWSPtrClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructiblePtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  525 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  526 | 
      |                                                      
  527 |                 .deriveClass <PBD::Command, PBD::StatefulDestructible> ("Command")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  528 |                 .addFunction ("set_name", &PBD::Command::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  529 |                 .addFunction ("name", &PBD::Command::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  530 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  531 | 
      |                                                      
  532 |                 /* UndoTransaction::add_command() subscribes to DropReferences()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  533 |                  * and deletes the object.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~           
  534 |                  *
      |                  ~                                   
  535 |                  * This object cannot be constructed by lua because lua would manage lifetime
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  536 |                  * and delete the object leading to a double free.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  537 |                  *
      |                  ~                                   
  538 |                  * use Session::add_stateful_diff_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  539 |                  * and Session::abort_reversible_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  540 |                  */
      |                  ~~                                  
  541 |                 .deriveClass <PBD::StatefulDiffCommand, PBD::Command> ("StatefulDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  542 |                 .addFunction ("undo", &PBD::StatefulDiffCommand::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  543 |                 .addFunction ("empty", &PBD::StatefulDiffCommand::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  544 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  545 | 
      |                                                      
  546 |                 .deriveWSPtrClass <PBD::Controllable, PBD::StatefulDestructible> ("Controllable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  547 |                 .addCast<MPControl<gain_t>> ("to_mpgain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  548 |                 .addCast<MPControl<bool>> ("to_mptoggle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  549 |                 .addCast<AutomationControl> ("to_automationcontrol")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  550 |                 .addFunction ("name", &PBD::Controllable::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  551 |                 .addFunction ("get_value", &PBD::Controllable::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  552 |                 .addStaticFunction ("registered_controllables", &PBD::Controllable::registered_controllables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  553 |                 .addStaticFunction ("dump_registry", &PBD::Controllable::dump_registry)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  554 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  555 | 
      |                                                      
  556 |                 .beginClass <PBD::RingBufferNPT <uint8_t> > ("RingBuffer8")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  557 |                 .addConstructor <void (*) (size_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'PBD::RingBufferNPT<unsigned char>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = PBD::RingBufferNPT<float>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = PBD::RingBufferNPT<float>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = PBD::RingBufferNPT<float>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<long unsigned int, void>; T = PBD::RingBufferNPT<float>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(long unsigned int); T = PBD::RingBufferNPT<float>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:569:39:   required from here
  486 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  487 |                 .beginNamespace ("PBD")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~              
  488 | 
      |                                                      
  489 |                 .addFunction ("open_uri", (bool (*) (const std::string&))&PBD::open_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  490 |                 .addFunction ("open_uri", &PBD::open_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  491 | 
      |                                                      
  492 |                 .beginClass <PBD::ID> ("ID")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  493 |                 .addConstructor <void (*) (std::string)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  494 |                 .addFunction ("to_s", &PBD::ID::to_s) // TODO special case LUA __tostring ?
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  495 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  496 | 
      |                                                      
  497 |                 .beginStdVector <PBD::ID> ("IdVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  498 | 
      |                                                      
  499 |                 .beginClass <XMLNode> ("XMLNode")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  500 |                 .addFunction ("name", &XMLNode::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  501 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  502 | 
      |                                                      
  503 |                 .beginClass <PBD::Progress> ("Progress")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  504 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  505 | 
      |                                                      
  506 |                 .beginClass <PBD::Stateful> ("Stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  507 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  508 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  509 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  510 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  511 | 
      |                                                      
  512 |                 .beginWSPtrClass <PBD::Stateful> ("StatefulPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  513 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  514 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  515 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  516 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  517 | 
      |                                                      
  518 |                 .deriveClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  519 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  520 | 
      |                                                      
  521 |                 .deriveClass <PBD::Configuration, PBD::Stateful> ("Configuration")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  522 |                 .endClass()
      |                 ~~~~~~~~~~~                          
  523 | 
      |                                                      
  524 |                 .deriveWSPtrClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructiblePtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  525 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  526 | 
      |                                                      
  527 |                 .deriveClass <PBD::Command, PBD::StatefulDestructible> ("Command")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  528 |                 .addFunction ("set_name", &PBD::Command::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  529 |                 .addFunction ("name", &PBD::Command::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  530 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  531 | 
      |                                                      
  532 |                 /* UndoTransaction::add_command() subscribes to DropReferences()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  533 |                  * and deletes the object.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~           
  534 |                  *
      |                  ~                                   
  535 |                  * This object cannot be constructed by lua because lua would manage lifetime
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  536 |                  * and delete the object leading to a double free.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  537 |                  *
      |                  ~                                   
  538 |                  * use Session::add_stateful_diff_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  539 |                  * and Session::abort_reversible_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  540 |                  */
      |                  ~~                                  
  541 |                 .deriveClass <PBD::StatefulDiffCommand, PBD::Command> ("StatefulDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  542 |                 .addFunction ("undo", &PBD::StatefulDiffCommand::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  543 |                 .addFunction ("empty", &PBD::StatefulDiffCommand::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  544 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  545 | 
      |                                                      
  546 |                 .deriveWSPtrClass <PBD::Controllable, PBD::StatefulDestructible> ("Controllable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  547 |                 .addCast<MPControl<gain_t>> ("to_mpgain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  548 |                 .addCast<MPControl<bool>> ("to_mptoggle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  549 |                 .addCast<AutomationControl> ("to_automationcontrol")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  550 |                 .addFunction ("name", &PBD::Controllable::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  551 |                 .addFunction ("get_value", &PBD::Controllable::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  552 |                 .addStaticFunction ("registered_controllables", &PBD::Controllable::registered_controllables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  553 |                 .addStaticFunction ("dump_registry", &PBD::Controllable::dump_registry)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  554 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  555 | 
      |                                                      
  556 |                 .beginClass <PBD::RingBufferNPT <uint8_t> > ("RingBuffer8")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  557 |                 .addConstructor <void (*) (size_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  558 |                 .addFunction ("reset", &PBD::RingBufferNPT<uint8_t>::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  559 |                 .addFunction ("read", &PBD::RingBufferNPT<uint8_t>::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  560 |                 .addFunction ("write", &PBD::RingBufferNPT<uint8_t>::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  561 |                 .addFunction ("write_one", &PBD::RingBufferNPT<uint8_t>::write_one)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  562 |                 .addFunction ("write_space", &PBD::RingBufferNPT<uint8_t>::write_space)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  563 |                 .addFunction ("read_space", &PBD::RingBufferNPT<uint8_t>::read_space)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  564 |                 .addFunction ("increment_read_ptr", &PBD::RingBufferNPT<uint8_t>::increment_read_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  565 |                 .addFunction ("increment_write_ptr", &PBD::RingBufferNPT<uint8_t>::increment_write_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  566 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  567 | 
      |                                                      
  568 |                 .beginClass <PBD::RingBufferNPT <float> > ("RingBufferF")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  569 |                 .addConstructor <void (*) (size_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'PBD::RingBufferNPT<float>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = PBD::RingBufferNPT<int>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = PBD::RingBufferNPT<int>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = PBD::RingBufferNPT<int>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<long unsigned int, void>; T = PBD::RingBufferNPT<int>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(long unsigned int); T = PBD::RingBufferNPT<int>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:581:39:   required from here
  486 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  487 |                 .beginNamespace ("PBD")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~              
  488 | 
      |                                                      
  489 |                 .addFunction ("open_uri", (bool (*) (const std::string&))&PBD::open_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  490 |                 .addFunction ("open_uri", &PBD::open_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  491 | 
      |                                                      
  492 |                 .beginClass <PBD::ID> ("ID")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  493 |                 .addConstructor <void (*) (std::string)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  494 |                 .addFunction ("to_s", &PBD::ID::to_s) // TODO special case LUA __tostring ?
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  495 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  496 | 
      |                                                      
  497 |                 .beginStdVector <PBD::ID> ("IdVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  498 | 
      |                                                      
  499 |                 .beginClass <XMLNode> ("XMLNode")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  500 |                 .addFunction ("name", &XMLNode::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  501 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  502 | 
      |                                                      
  503 |                 .beginClass <PBD::Progress> ("Progress")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  504 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  505 | 
      |                                                      
  506 |                 .beginClass <PBD::Stateful> ("Stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  507 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  508 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  509 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  510 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  511 | 
      |                                                      
  512 |                 .beginWSPtrClass <PBD::Stateful> ("StatefulPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  513 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  514 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  515 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  516 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  517 | 
      |                                                      
  518 |                 .deriveClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  519 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  520 | 
      |                                                      
  521 |                 .deriveClass <PBD::Configuration, PBD::Stateful> ("Configuration")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  522 |                 .endClass()
      |                 ~~~~~~~~~~~                          
  523 | 
      |                                                      
  524 |                 .deriveWSPtrClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructiblePtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  525 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  526 | 
      |                                                      
  527 |                 .deriveClass <PBD::Command, PBD::StatefulDestructible> ("Command")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  528 |                 .addFunction ("set_name", &PBD::Command::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  529 |                 .addFunction ("name", &PBD::Command::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  530 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  531 | 
      |                                                      
  532 |                 /* UndoTransaction::add_command() subscribes to DropReferences()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  533 |                  * and deletes the object.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~           
  534 |                  *
      |                  ~                                   
  535 |                  * This object cannot be constructed by lua because lua would manage lifetime
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  536 |                  * and delete the object leading to a double free.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  537 |                  *
      |                  ~                                   
  538 |                  * use Session::add_stateful_diff_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  539 |                  * and Session::abort_reversible_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  540 |                  */
      |                  ~~                                  
  541 |                 .deriveClass <PBD::StatefulDiffCommand, PBD::Command> ("StatefulDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  542 |                 .addFunction ("undo", &PBD::StatefulDiffCommand::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  543 |                 .addFunction ("empty", &PBD::StatefulDiffCommand::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  544 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  545 | 
      |                                                      
  546 |                 .deriveWSPtrClass <PBD::Controllable, PBD::StatefulDestructible> ("Controllable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  547 |                 .addCast<MPControl<gain_t>> ("to_mpgain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  548 |                 .addCast<MPControl<bool>> ("to_mptoggle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  549 |                 .addCast<AutomationControl> ("to_automationcontrol")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  550 |                 .addFunction ("name", &PBD::Controllable::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  551 |                 .addFunction ("get_value", &PBD::Controllable::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  552 |                 .addStaticFunction ("registered_controllables", &PBD::Controllable::registered_controllables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  553 |                 .addStaticFunction ("dump_registry", &PBD::Controllable::dump_registry)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  554 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  555 | 
      |                                                      
  556 |                 .beginClass <PBD::RingBufferNPT <uint8_t> > ("RingBuffer8")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  557 |                 .addConstructor <void (*) (size_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  558 |                 .addFunction ("reset", &PBD::RingBufferNPT<uint8_t>::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  559 |                 .addFunction ("read", &PBD::RingBufferNPT<uint8_t>::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  560 |                 .addFunction ("write", &PBD::RingBufferNPT<uint8_t>::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  561 |                 .addFunction ("write_one", &PBD::RingBufferNPT<uint8_t>::write_one)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  562 |                 .addFunction ("write_space", &PBD::RingBufferNPT<uint8_t>::write_space)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  563 |                 .addFunction ("read_space", &PBD::RingBufferNPT<uint8_t>::read_space)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  564 |                 .addFunction ("increment_read_ptr", &PBD::RingBufferNPT<uint8_t>::increment_read_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  565 |                 .addFunction ("increment_write_ptr", &PBD::RingBufferNPT<uint8_t>::increment_write_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  566 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  567 | 
      |                                                      
  568 |                 .beginClass <PBD::RingBufferNPT <float> > ("RingBufferF")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  569 |                 .addConstructor <void (*) (size_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  570 |                 .addFunction ("reset", &PBD::RingBufferNPT<float>::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  571 |                 .addFunction ("read", &PBD::RingBufferNPT<float>::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  572 |                 .addFunction ("write", &PBD::RingBufferNPT<float>::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  573 |                 .addFunction ("write_one", &PBD::RingBufferNPT<float>::write_one)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  574 |                 .addFunction ("write_space", &PBD::RingBufferNPT<float>::write_space)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  575 |                 .addFunction ("read_space", &PBD::RingBufferNPT<float>::read_space)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  576 |                 .addFunction ("increment_read_ptr", &PBD::RingBufferNPT<float>::increment_read_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  577 |                 .addFunction ("increment_write_ptr", &PBD::RingBufferNPT<float>::increment_write_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  578 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
  579 | 
      |                                                      
  580 |                 .beginClass <PBD::RingBufferNPT <int> > ("RingBufferI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  581 |                 .addConstructor <void (*) (size_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'PBD::RingBufferNPT<int>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Timecode::Time]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Timecode::Time]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Timecode::Time; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<double, void>; T = Timecode::Time; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(double); T = Timecode::Time]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:605:39:   required from here
  601 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  602 |                 .beginNamespace ("Timecode")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  603 | 
      |                                                      
  604 |                 .beginClass <Timecode::Time> ("Time")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  605 |                 .addConstructor <void (*) (double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Timecode::Time*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Temporal::_ratio_t<long int>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Temporal::_ratio_t<long int>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Temporal::_ratio_t<long int>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<long int, luabridge::TypeList<long int, void> >; T = Temporal::_ratio_t<long int>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(long int, long int); T = Temporal::_ratio_t<long int>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:643:49:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
  636 | 
      |                                                                
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
  638 | 
      |                                                                
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  641 | 
      |                                                                
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Temporal::_ratio_t<long int>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Temporal::Beats]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Temporal::Beats]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Temporal::Beats; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<int, luabridge::TypeList<int, void> >; T = Temporal::Beats; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(int, int); T = Temporal::Beats]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:649:49:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
  636 | 
      |                                                                
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
  638 | 
      |                                                                
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  641 | 
      |                                                                
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
  647 | 
      |                                                                
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Temporal::Beats*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Temporal::timepos_t]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Temporal::timepos_t]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Temporal::timepos_t; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<long int, void>; T = Temporal::timepos_t; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(long int); T = Temporal::timepos_t]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:675:54:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
  636 | 
      |                                                                     
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
  638 | 
      |                                                                     
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  641 | 
      |                                                                     
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
  647 | 
      |                                                                     
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
  673 | 
      |                                                                     
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Temporal::timepos_t*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Temporal::timecnt_t]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Temporal::timecnt_t]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Temporal::timecnt_t; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<long int, void>; T = Temporal::timecnt_t; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(long int); T = Temporal::timecnt_t]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:708:54:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
  636 | 
      |                                                                     
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
  638 | 
      |                                                                     
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  641 | 
      |                                                                     
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
  647 | 
      |                                                                     
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
  673 | 
      |                                                                     
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                     
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 | #endif
      | ~~~~~~                                                              
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
  706 | 
      |                                                                     
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Temporal::timecnt_t*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Temporal::BBT_Time]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Temporal::BBT_Time]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Temporal::BBT_Time; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<int, luabridge::TypeList<int, luabridge::TypeList<int, void> > >; T = Temporal::BBT_Time; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(int, int, int); T = Temporal::BBT_Time]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:743:58:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
  636 | 
      |                                                                         
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
  638 | 
      |                                                                         
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  641 | 
      |                                                                         
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                            
  647 | 
      |                                                                         
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                            
  673 | 
      |                                                                         
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                         
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 | #endif
      | ~~~~~~                                                                  
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                            
  706 | 
      |                                                                         
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  709 |                 .addOperator ("__add", CPPOPERATOR(Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::timecnt_t, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  711 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  712 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  713 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  714 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timecnt_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  715 |                 .addStaticFunction ("zero", &Temporal::timecnt_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  716 |                 .addStaticFunction ("max", (Temporal::timecnt_t const & (*)()) &Temporal::timecnt_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717 |                 .addStaticFunction ("from_samples", static_cast<Temporal::timecnt_t(*)(Temporal::samplepos_t)>(&Temporal::timecnt_t::from_samples))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  718 |                 .addStaticFunction ("from_ticks", static_cast<Temporal::timecnt_t(*)(int64_t)>(&Temporal::timecnt_t::from_ticks))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  719 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                         
  720 |                 .addStaticFunction ("from_superclock", static_cast<Temporal::timecnt_t(*)(superclock_t)>(&Temporal::timecnt_t::from_superclock))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                 .addFunction ("superclocks", &Temporal::timecnt_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  722 | #endif
      | ~~~~~~                                                                  
  723 |                 .addFunction ("magnitude", &Temporal::timecnt_t::magnitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  724 |                 .addFunction ("position", &Temporal::timecnt_t::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  725 |                 .addFunction ("set_position", &Temporal::timecnt_t::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  726 |                 .addFunction ("is_positive", &Temporal::timecnt_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  727 |                 .addFunction ("is_negative", &Temporal::timecnt_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  728 |                 .addFunction ("is_zero", &Temporal::timecnt_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  729 |                 .addFunction ("abs", &Temporal::timecnt_t::abs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  730 |                 .addFunction ("time_domain", &Temporal::timecnt_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |                 .addFunction ("set_time_domain", &Temporal::timecnt_t::set_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 .addFunction ("samples", &Temporal::timecnt_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  733 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  734 |                 .addFunction ("beats", &Temporal::timecnt_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  735 |                 .addFunction ("ticks", &Temporal::timecnt_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  736 |                 .addFunction ("str", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  737 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  738 |                 .addFunction ("decrement", &Temporal::timecnt_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  739 |                 .addMetamethod ("__tostring", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  740 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                            
  741 | 
      |                                                                         
  742 |                 .beginClass <Temporal::BBT_Time> ("BBT_TIME")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  743 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Temporal::BBT_Time*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Temporal::BBT_Argument]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Temporal::BBT_Argument]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Temporal::BBT_Argument; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<int, luabridge::TypeList<int, luabridge::TypeList<int, void> > >; T = Temporal::BBT_Argument; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(int, int, int); T = Temporal::BBT_Argument]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:756:58:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
  636 | 
      |                                                                         
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
  638 | 
      |                                                                         
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  641 | 
      |                                                                         
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                            
  647 | 
      |                                                                         
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                            
  673 | 
      |                                                                         
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                         
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 | #endif
      | ~~~~~~                                                                  
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                            
  706 | 
      |                                                                         
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  709 |                 .addOperator ("__add", CPPOPERATOR(Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::timecnt_t, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  711 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  712 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  713 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  714 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timecnt_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  715 |                 .addStaticFunction ("zero", &Temporal::timecnt_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  716 |                 .addStaticFunction ("max", (Temporal::timecnt_t const & (*)()) &Temporal::timecnt_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717 |                 .addStaticFunction ("from_samples", static_cast<Temporal::timecnt_t(*)(Temporal::samplepos_t)>(&Temporal::timecnt_t::from_samples))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  718 |                 .addStaticFunction ("from_ticks", static_cast<Temporal::timecnt_t(*)(int64_t)>(&Temporal::timecnt_t::from_ticks))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  719 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                         
  720 |                 .addStaticFunction ("from_superclock", static_cast<Temporal::timecnt_t(*)(superclock_t)>(&Temporal::timecnt_t::from_superclock))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                 .addFunction ("superclocks", &Temporal::timecnt_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  722 | #endif
      | ~~~~~~                                                                  
  723 |                 .addFunction ("magnitude", &Temporal::timecnt_t::magnitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  724 |                 .addFunction ("position", &Temporal::timecnt_t::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  725 |                 .addFunction ("set_position", &Temporal::timecnt_t::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  726 |                 .addFunction ("is_positive", &Temporal::timecnt_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  727 |                 .addFunction ("is_negative", &Temporal::timecnt_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  728 |                 .addFunction ("is_zero", &Temporal::timecnt_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  729 |                 .addFunction ("abs", &Temporal::timecnt_t::abs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  730 |                 .addFunction ("time_domain", &Temporal::timecnt_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |                 .addFunction ("set_time_domain", &Temporal::timecnt_t::set_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 .addFunction ("samples", &Temporal::timecnt_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  733 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  734 |                 .addFunction ("beats", &Temporal::timecnt_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  735 |                 .addFunction ("ticks", &Temporal::timecnt_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  736 |                 .addFunction ("str", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  737 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  738 |                 .addFunction ("decrement", &Temporal::timecnt_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  739 |                 .addMetamethod ("__tostring", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  740 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                            
  741 | 
      |                                                                         
  742 |                 .beginClass <Temporal::BBT_Time> ("BBT_TIME")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  743 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  744 |                 .addData ("bars", &Temporal::BBT_Time::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  745 |                 .addData ("beats", &Temporal::BBT_Time::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  746 |                 .addData ("ticks", &Temporal::BBT_Time::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  747 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Time, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  748 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Time, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  749 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Time, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  750 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  751 |                 .addMetamethod ("__tostring", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  752 |                 // .addStaticData ("ticks_per_beat", &Temporal::ticks_per_beat, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  753 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                            
  754 | 
      |                                                                         
  755 |                 .deriveClass <Temporal::BBT_Argument, Temporal::BBT_Time> ("BBT_Argument")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  756 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Temporal::BBT_Argument*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Temporal::BBT_Offset]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Temporal::BBT_Offset]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Temporal::BBT_Offset; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<unsigned int, luabridge::TypeList<unsigned int, luabridge::TypeList<unsigned int, void> > >; T = Temporal::BBT_Offset; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(unsigned int, unsigned int, unsigned int); T = Temporal::BBT_Offset]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:760:61:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                  
  636 | 
      |                                                                            
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
  638 | 
      |                                                                            
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  641 | 
      |                                                                            
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                               
  647 | 
      |                                                                            
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                               
  673 | 
      |                                                                            
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                            
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 | #endif
      | ~~~~~~                                                                     
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                               
  706 | 
      |                                                                            
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  709 |                 .addOperator ("__add", CPPOPERATOR(Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::timecnt_t, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  711 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  712 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  713 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  714 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timecnt_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  715 |                 .addStaticFunction ("zero", &Temporal::timecnt_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  716 |                 .addStaticFunction ("max", (Temporal::timecnt_t const & (*)()) &Temporal::timecnt_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717 |                 .addStaticFunction ("from_samples", static_cast<Temporal::timecnt_t(*)(Temporal::samplepos_t)>(&Temporal::timecnt_t::from_samples))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  718 |                 .addStaticFunction ("from_ticks", static_cast<Temporal::timecnt_t(*)(int64_t)>(&Temporal::timecnt_t::from_ticks))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  719 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                            
  720 |                 .addStaticFunction ("from_superclock", static_cast<Temporal::timecnt_t(*)(superclock_t)>(&Temporal::timecnt_t::from_superclock))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                 .addFunction ("superclocks", &Temporal::timecnt_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  722 | #endif
      | ~~~~~~                                                                     
  723 |                 .addFunction ("magnitude", &Temporal::timecnt_t::magnitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  724 |                 .addFunction ("position", &Temporal::timecnt_t::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  725 |                 .addFunction ("set_position", &Temporal::timecnt_t::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  726 |                 .addFunction ("is_positive", &Temporal::timecnt_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  727 |                 .addFunction ("is_negative", &Temporal::timecnt_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  728 |                 .addFunction ("is_zero", &Temporal::timecnt_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  729 |                 .addFunction ("abs", &Temporal::timecnt_t::abs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  730 |                 .addFunction ("time_domain", &Temporal::timecnt_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |                 .addFunction ("set_time_domain", &Temporal::timecnt_t::set_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 .addFunction ("samples", &Temporal::timecnt_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  733 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  734 |                 .addFunction ("beats", &Temporal::timecnt_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  735 |                 .addFunction ("ticks", &Temporal::timecnt_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  736 |                 .addFunction ("str", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  737 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  738 |                 .addFunction ("decrement", &Temporal::timecnt_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  739 |                 .addMetamethod ("__tostring", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  740 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                               
  741 | 
      |                                                                            
  742 |                 .beginClass <Temporal::BBT_Time> ("BBT_TIME")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  743 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  744 |                 .addData ("bars", &Temporal::BBT_Time::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  745 |                 .addData ("beats", &Temporal::BBT_Time::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  746 |                 .addData ("ticks", &Temporal::BBT_Time::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  747 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Time, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  748 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Time, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  749 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Time, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  750 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  751 |                 .addMetamethod ("__tostring", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  752 |                 // .addStaticData ("ticks_per_beat", &Temporal::ticks_per_beat, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  753 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                               
  754 | 
      |                                                                            
  755 |                 .deriveClass <Temporal::BBT_Argument, Temporal::BBT_Time> ("BBT_Argument")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  756 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  757 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                               
  758 | 
      |                                                                            
  759 |                 .beginClass <Temporal::BBT_Offset> ("BBT_Offset")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  760 |                 .addConstructor <void (*) (uint32_t, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Temporal::BBT_Offset*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Temporal::Tempo]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Temporal::Tempo]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Temporal::Tempo; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<double, luabridge::TypeList<double, luabridge::TypeList<int, void> > >; T = Temporal::Tempo; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(double, double, int); T = Temporal::Tempo]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:778:52:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
  636 | 
      |                                                                   
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
  638 | 
      |                                                                   
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  641 | 
      |                                                                   
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
  647 | 
      |                                                                   
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
  673 | 
      |                                                                   
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                   
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 | #endif
      | ~~~~~~                                                            
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
  706 | 
      |                                                                   
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  709 |                 .addOperator ("__add", CPPOPERATOR(Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::timecnt_t, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  711 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  712 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  713 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  714 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timecnt_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  715 |                 .addStaticFunction ("zero", &Temporal::timecnt_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  716 |                 .addStaticFunction ("max", (Temporal::timecnt_t const & (*)()) &Temporal::timecnt_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717 |                 .addStaticFunction ("from_samples", static_cast<Temporal::timecnt_t(*)(Temporal::samplepos_t)>(&Temporal::timecnt_t::from_samples))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  718 |                 .addStaticFunction ("from_ticks", static_cast<Temporal::timecnt_t(*)(int64_t)>(&Temporal::timecnt_t::from_ticks))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  719 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                   
  720 |                 .addStaticFunction ("from_superclock", static_cast<Temporal::timecnt_t(*)(superclock_t)>(&Temporal::timecnt_t::from_superclock))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                 .addFunction ("superclocks", &Temporal::timecnt_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  722 | #endif
      | ~~~~~~                                                            
  723 |                 .addFunction ("magnitude", &Temporal::timecnt_t::magnitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  724 |                 .addFunction ("position", &Temporal::timecnt_t::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  725 |                 .addFunction ("set_position", &Temporal::timecnt_t::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  726 |                 .addFunction ("is_positive", &Temporal::timecnt_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  727 |                 .addFunction ("is_negative", &Temporal::timecnt_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  728 |                 .addFunction ("is_zero", &Temporal::timecnt_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  729 |                 .addFunction ("abs", &Temporal::timecnt_t::abs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  730 |                 .addFunction ("time_domain", &Temporal::timecnt_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |                 .addFunction ("set_time_domain", &Temporal::timecnt_t::set_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 .addFunction ("samples", &Temporal::timecnt_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  733 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  734 |                 .addFunction ("beats", &Temporal::timecnt_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  735 |                 .addFunction ("ticks", &Temporal::timecnt_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  736 |                 .addFunction ("str", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  737 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  738 |                 .addFunction ("decrement", &Temporal::timecnt_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  739 |                 .addMetamethod ("__tostring", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  740 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
  741 | 
      |                                                                   
  742 |                 .beginClass <Temporal::BBT_Time> ("BBT_TIME")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  743 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  744 |                 .addData ("bars", &Temporal::BBT_Time::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  745 |                 .addData ("beats", &Temporal::BBT_Time::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  746 |                 .addData ("ticks", &Temporal::BBT_Time::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  747 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Time, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  748 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Time, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  749 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Time, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  750 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  751 |                 .addMetamethod ("__tostring", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  752 |                 // .addStaticData ("ticks_per_beat", &Temporal::ticks_per_beat, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  753 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
  754 | 
      |                                                                   
  755 |                 .deriveClass <Temporal::BBT_Argument, Temporal::BBT_Time> ("BBT_Argument")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  756 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  757 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
  758 | 
      |                                                                   
  759 |                 .beginClass <Temporal::BBT_Offset> ("BBT_Offset")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  760 |                 .addConstructor <void (*) (uint32_t, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  761 |                 .addData ("bars", &Temporal::BBT_Offset::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  762 |                 .addData ("beats", &Temporal::BBT_Offset::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  763 |                 .addData ("ticks", &Temporal::BBT_Offset::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  764 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Offset, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  765 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Offset, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  766 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Offset, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  767 |                 .addOperator ("__add", CPPOPERATOR(Temporal::BBT_Offset, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  768 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::BBT_Offset, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  769 | #if 0
      | ~~~~~                                                             
  770 |                 .addOperator ("__mul", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  771 |                 .addOperator ("__div", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  772 | #endif
      | ~~~~~~                                                            
  773 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  774 |                 .addMetamethod ("__tostring", &Temporal::BBT_Offset::str) // XXX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  775 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
  776 | 
      |                                                                   
  777 |                 .beginClass <Temporal::Tempo> ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  778 |                 .addConstructor <void (*) (double, double, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Temporal::Tempo*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Temporal::Meter]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Temporal::Meter]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Temporal::Meter; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<double, luabridge::TypeList<double, void> >; T = Temporal::Meter; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(double, double); T = Temporal::Meter]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:790:47:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  636 | 
      |                                                              
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  638 | 
      |                                                              
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  641 | 
      |                                                              
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
  647 | 
      |                                                              
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
  673 | 
      |                                                              
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 | #endif
      | ~~~~~~                                                       
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
  706 | 
      |                                                              
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  709 |                 .addOperator ("__add", CPPOPERATOR(Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::timecnt_t, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  711 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  712 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  713 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  714 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timecnt_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  715 |                 .addStaticFunction ("zero", &Temporal::timecnt_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  716 |                 .addStaticFunction ("max", (Temporal::timecnt_t const & (*)()) &Temporal::timecnt_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717 |                 .addStaticFunction ("from_samples", static_cast<Temporal::timecnt_t(*)(Temporal::samplepos_t)>(&Temporal::timecnt_t::from_samples))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  718 |                 .addStaticFunction ("from_ticks", static_cast<Temporal::timecnt_t(*)(int64_t)>(&Temporal::timecnt_t::from_ticks))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  719 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
  720 |                 .addStaticFunction ("from_superclock", static_cast<Temporal::timecnt_t(*)(superclock_t)>(&Temporal::timecnt_t::from_superclock))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                 .addFunction ("superclocks", &Temporal::timecnt_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  722 | #endif
      | ~~~~~~                                                       
  723 |                 .addFunction ("magnitude", &Temporal::timecnt_t::magnitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  724 |                 .addFunction ("position", &Temporal::timecnt_t::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  725 |                 .addFunction ("set_position", &Temporal::timecnt_t::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  726 |                 .addFunction ("is_positive", &Temporal::timecnt_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  727 |                 .addFunction ("is_negative", &Temporal::timecnt_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  728 |                 .addFunction ("is_zero", &Temporal::timecnt_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  729 |                 .addFunction ("abs", &Temporal::timecnt_t::abs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |                 .addFunction ("time_domain", &Temporal::timecnt_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |                 .addFunction ("set_time_domain", &Temporal::timecnt_t::set_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 .addFunction ("samples", &Temporal::timecnt_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  733 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  734 |                 .addFunction ("beats", &Temporal::timecnt_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  735 |                 .addFunction ("ticks", &Temporal::timecnt_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  736 |                 .addFunction ("str", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  737 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  738 |                 .addFunction ("decrement", &Temporal::timecnt_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  739 |                 .addMetamethod ("__tostring", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  740 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
  741 | 
      |                                                              
  742 |                 .beginClass <Temporal::BBT_Time> ("BBT_TIME")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  743 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  744 |                 .addData ("bars", &Temporal::BBT_Time::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  745 |                 .addData ("beats", &Temporal::BBT_Time::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |                 .addData ("ticks", &Temporal::BBT_Time::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  747 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Time, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  748 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Time, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  749 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Time, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  750 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  751 |                 .addMetamethod ("__tostring", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  752 |                 // .addStaticData ("ticks_per_beat", &Temporal::ticks_per_beat, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  753 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
  754 | 
      |                                                              
  755 |                 .deriveClass <Temporal::BBT_Argument, Temporal::BBT_Time> ("BBT_Argument")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  756 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  757 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
  758 | 
      |                                                              
  759 |                 .beginClass <Temporal::BBT_Offset> ("BBT_Offset")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  760 |                 .addConstructor <void (*) (uint32_t, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  761 |                 .addData ("bars", &Temporal::BBT_Offset::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  762 |                 .addData ("beats", &Temporal::BBT_Offset::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  763 |                 .addData ("ticks", &Temporal::BBT_Offset::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  764 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Offset, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  765 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Offset, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  766 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Offset, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  767 |                 .addOperator ("__add", CPPOPERATOR(Temporal::BBT_Offset, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  768 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::BBT_Offset, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  769 | #if 0
      | ~~~~~                                                        
  770 |                 .addOperator ("__mul", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  771 |                 .addOperator ("__div", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  772 | #endif
      | ~~~~~~                                                       
  773 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  774 |                 .addMetamethod ("__tostring", &Temporal::BBT_Offset::str) // XXX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  775 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
  776 | 
      |                                                              
  777 |                 .beginClass <Temporal::Tempo> ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  778 |                 .addConstructor <void (*) (double, double, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  779 |                 .addFunction ("note_type", &Temporal::Tempo::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  780 |                 .addFunction ("note_types_per_minute",  (double (Temporal::Tempo::*)() const)&Temporal::Tempo::note_types_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  781 |                 .addFunction ("quarter_notes_per_minute", &Temporal::Tempo::quarter_notes_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  782 |                 .addFunction ("samples_per_quarter_note", &Temporal::Tempo::samples_per_quarter_note)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  783 |                 .addFunction ("samples_per_note_type", &Temporal::Tempo::samples_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  784 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
  785 |                 .addFunction ("superclocks_per_note_type", (superclock_t (Temporal::Tempo::*)() const)&Temporal::Tempo::superclocks_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  786 | #endif
      | ~~~~~~                                                       
  787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
  788 | 
      |                                                              
  789 |                 .beginClass <Temporal::Meter> ("Meter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  790 |                 .addConstructor <void (*) (double, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Temporal::Meter*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Evoral::Parameter]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Evoral::Parameter]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Evoral::Parameter; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<unsigned int, luabridge::TypeList<unsigned char, luabridge::TypeList<unsigned int, void> > >; T = Evoral::Parameter; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(unsigned int, unsigned char, unsigned int); T = Evoral::Parameter]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:914:60:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                 
  636 | 
      |                                                                           
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
  638 | 
      |                                                                           
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  641 | 
      |                                                                           
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  647 | 
      |                                                                           
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  673 | 
      |                                                                           
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                           
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 | #endif
      | ~~~~~~                                                                    
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  706 | 
      |                                                                           
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  709 |                 .addOperator ("__add", CPPOPERATOR(Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::timecnt_t, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  711 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  712 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  713 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  714 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timecnt_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  715 |                 .addStaticFunction ("zero", &Temporal::timecnt_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  716 |                 .addStaticFunction ("max", (Temporal::timecnt_t const & (*)()) &Temporal::timecnt_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717 |                 .addStaticFunction ("from_samples", static_cast<Temporal::timecnt_t(*)(Temporal::samplepos_t)>(&Temporal::timecnt_t::from_samples))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  718 |                 .addStaticFunction ("from_ticks", static_cast<Temporal::timecnt_t(*)(int64_t)>(&Temporal::timecnt_t::from_ticks))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  719 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                           
  720 |                 .addStaticFunction ("from_superclock", static_cast<Temporal::timecnt_t(*)(superclock_t)>(&Temporal::timecnt_t::from_superclock))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                 .addFunction ("superclocks", &Temporal::timecnt_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  722 | #endif
      | ~~~~~~                                                                    
  723 |                 .addFunction ("magnitude", &Temporal::timecnt_t::magnitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  724 |                 .addFunction ("position", &Temporal::timecnt_t::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  725 |                 .addFunction ("set_position", &Temporal::timecnt_t::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  726 |                 .addFunction ("is_positive", &Temporal::timecnt_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  727 |                 .addFunction ("is_negative", &Temporal::timecnt_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  728 |                 .addFunction ("is_zero", &Temporal::timecnt_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  729 |                 .addFunction ("abs", &Temporal::timecnt_t::abs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  730 |                 .addFunction ("time_domain", &Temporal::timecnt_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |                 .addFunction ("set_time_domain", &Temporal::timecnt_t::set_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 .addFunction ("samples", &Temporal::timecnt_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  733 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  734 |                 .addFunction ("beats", &Temporal::timecnt_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  735 |                 .addFunction ("ticks", &Temporal::timecnt_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  736 |                 .addFunction ("str", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  737 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  738 |                 .addFunction ("decrement", &Temporal::timecnt_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  739 |                 .addMetamethod ("__tostring", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  740 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  741 | 
      |                                                                           
  742 |                 .beginClass <Temporal::BBT_Time> ("BBT_TIME")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  743 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  744 |                 .addData ("bars", &Temporal::BBT_Time::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  745 |                 .addData ("beats", &Temporal::BBT_Time::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  746 |                 .addData ("ticks", &Temporal::BBT_Time::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  747 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Time, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  748 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Time, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  749 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Time, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  750 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  751 |                 .addMetamethod ("__tostring", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  752 |                 // .addStaticData ("ticks_per_beat", &Temporal::ticks_per_beat, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  753 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  754 | 
      |                                                                           
  755 |                 .deriveClass <Temporal::BBT_Argument, Temporal::BBT_Time> ("BBT_Argument")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  756 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  757 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  758 | 
      |                                                                           
  759 |                 .beginClass <Temporal::BBT_Offset> ("BBT_Offset")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  760 |                 .addConstructor <void (*) (uint32_t, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  761 |                 .addData ("bars", &Temporal::BBT_Offset::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  762 |                 .addData ("beats", &Temporal::BBT_Offset::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  763 |                 .addData ("ticks", &Temporal::BBT_Offset::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  764 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Offset, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  765 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Offset, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  766 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Offset, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  767 |                 .addOperator ("__add", CPPOPERATOR(Temporal::BBT_Offset, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  768 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::BBT_Offset, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  769 | #if 0
      | ~~~~~                                                                     
  770 |                 .addOperator ("__mul", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  771 |                 .addOperator ("__div", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  772 | #endif
      | ~~~~~~                                                                    
  773 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  774 |                 .addMetamethod ("__tostring", &Temporal::BBT_Offset::str) // XXX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  775 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  776 | 
      |                                                                           
  777 |                 .beginClass <Temporal::Tempo> ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
  778 |                 .addConstructor <void (*) (double, double, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  779 |                 .addFunction ("note_type", &Temporal::Tempo::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  780 |                 .addFunction ("note_types_per_minute",  (double (Temporal::Tempo::*)() const)&Temporal::Tempo::note_types_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  781 |                 .addFunction ("quarter_notes_per_minute", &Temporal::Tempo::quarter_notes_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  782 |                 .addFunction ("samples_per_quarter_note", &Temporal::Tempo::samples_per_quarter_note)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  783 |                 .addFunction ("samples_per_note_type", &Temporal::Tempo::samples_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  784 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                           
  785 |                 .addFunction ("superclocks_per_note_type", (superclock_t (Temporal::Tempo::*)() const)&Temporal::Tempo::superclocks_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  786 | #endif
      | ~~~~~~                                                                    
  787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  788 | 
      |                                                                           
  789 |                 .beginClass <Temporal::Meter> ("Meter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
  790 |                 .addConstructor <void (*) (double, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  791 |                 .addFunction ("divisions_per_bar", &Temporal::Meter::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  792 |                 .addFunction ("note_value", &Temporal::Meter::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  793 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  794 | 
      |                                                                           
  795 |                 .beginClass <Temporal::Point> ("Point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
  796 |                 .addFunction ("sclock", &Temporal::Point::sclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  797 |                 .addFunction ("beats", &Temporal::Point::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  798 |                 .addFunction ("sample", &Temporal::Point::sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  799 |                 .addFunction ("bbt", &Temporal::Point::bbt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  800 |                 .addFunction ("time", &Temporal::Point::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  801 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  802 | 
      |                                                                           
  803 |                 /* FIXME, direct access to parent class Temporal::Tempo fails here,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  804 |                  * even thought it is access via UserdataPtr at the same address */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .deriveClass <Temporal::TempoPoint, Temporal::Tempo> ("TempoPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addCast<Temporal::Tempo> ("to_tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  807 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  808 |                 .addFunction ("quarters_at_sample", &Temporal::TempoPoint::quarters_at_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  809 |                 .addFunction ("time", &Temporal::TempoPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  810 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  811 | 
      |                                                                           
  812 |                 .deriveClass <Temporal::MeterPoint, Temporal::Meter> ("MeterPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  813 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  814 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  815 | 
      |                                                                           
  816 |                 .beginClass <Temporal::TempoMetric> ("TempoMetric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  817 |                 .addFunction ("tempo", &Temporal::TempoMetric::tempo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  818 |                 .addFunction ("meter", &Temporal::TempoMetric::meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  819 |                 .addFunction ("sample_at", &Temporal::TempoMetric::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  820 |                 .addFunction ("quarters_at", &Temporal::TempoMetric::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  821 |                 .addFunction ("note_type", &Temporal::TempoMetric::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .addFunction ("note_value", &Temporal::TempoMetric::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  823 |                 .addFunction ("divisions_per_bar", &Temporal::TempoMetric::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  824 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  825 | 
      |                                                                           
  826 |                 .deriveClass <Temporal::TempoMapPoint, Temporal::Point> ("TempoMapPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  827 |                 .addCast<Temporal::TempoMetric> ("to_tempometric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  828 |                 .addFunction ("time", &Temporal::TempoMapPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  829 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  830 | 
      |                                                                           
  831 |                 .beginStdVector <Temporal::TempoMapPoint> ("TempoMapPoints")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  833 | 
      |                                                                           
  834 |                 .beginWSPtrClass <Temporal::TempoMap> ("TempoMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  835 |                 /* we cannot use ::fetch or ::use because LuaBridge cannot overload
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  836 |                  * shared_ptr<const T> and shared_ptr<T> in the same class.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                  */
      |                  ~~                                                       
  838 |                 .addStaticFunction ("read", &Temporal::TempoMap::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  839 |                 .addStaticFunction ("write_copy", &Temporal::TempoMap::write_copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  840 |                 .addStaticFunction ("update", &Temporal::TempoMap::update)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  841 |                 .addStaticFunction ("abort_update", &Temporal::TempoMap::abort_update)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .addFunction ("set_tempo", (Temporal::TempoPoint& (Temporal::TempoMap::*)(Temporal::Tempo const &,Temporal::timepos_t const &)) &Temporal::TempoMap::set_tempo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  843 |                 .addFunction ("set_meter", (Temporal::MeterPoint& (Temporal::TempoMap::*)(Temporal::Meter const &,Temporal::timepos_t const &)) &Temporal::TempoMap::set_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  844 |                 .addFunction ("set_ramped", &Temporal::TempoMap::set_ramped)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addFunction ("set_continuing", &Temporal::TempoMap::set_continuing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 | 
      |                                                                           
  847 |                 .addFunction ("tempo_at", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  848 |                 .addFunction ("tempo_at_bbt", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  849 |                 .addFunction ("tempo_at_beats", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  850 | 
      |                                                                           
  851 |                 .addFunction ("meter_at", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  852 |                 .addFunction ("meter_at_bbt", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  853 |                 .addFunction ("meter_at_beats", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 | 
      |                                                                           
  855 |                 .addFunction ("bbt_at", (Temporal::BBT_Argument (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::bbt_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  856 |                 .addFunction ("bbt_at_beats", (Temporal::BBT_Argument (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::bbt_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  857 | 
      |                                                                           
  858 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                           
  859 |                 .addFunction ("tempo_at_sc", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(superclock_t) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("meter_at_sc", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(superclock_t) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("superclock_at", (superclock_t (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("superclock_at_bbt", (superclock_t (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .addFunction ("superclock_at_beats", (superclock_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  864 | #endif
      | ~~~~~~                                                                    
  865 | 
      |                                                                           
  866 |                 .addFunction ("quarters_at", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("quarters_at_bbt", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("quarters_at_sample", &Temporal::TempoMap::quarters_at_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 | 
      |                                                                           
  870 |                 .addFunction ("sample_at", (samplepos_t (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .addFunction ("sample_at_bbt", (samplepos_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  872 |                 .addFunction ("sample_at_beats", (samplepos_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  873 | 
      |                                                                           
  874 |                 .addFunction ("bbt_duration_at", &Temporal::TempoMap::bbt_duration_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  875 |                 .addFunction ("bbtwalk_to_quarters", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::Beats const &, Temporal::BBT_Offset const &) const) &Temporal::TempoMap::bbtwalk_to_quarters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  876 |                 .addFunction ("bbtwalk_to_quarters_bbt", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::BBT_Argument const &, Temporal::BBT_Offset const &) const) &Temporal::TempoMap::bbtwalk_to_quarters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 | 
      |                                                                           
  878 |                 .addFunction ("convert_duration", &Temporal::TempoMap::convert_duration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("bbt_walk", &Temporal::TempoMap::bbt_walk)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  880 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                           
  881 |                 .addRefFunction ("grid", &Temporal::TempoMap::grid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  882 | #endif
      | ~~~~~~                                                                    
  883 | 
      |                                                                           
  884 |                 .addFunction ("quarters_per_minute_at", &Temporal::TempoMap::quarters_per_minute_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  885 |                 .addFunction ("round_to_bar", &Temporal::TempoMap::round_to_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  886 |                 .addRefFunction ("midi_clock_beat_at_or_after", &Temporal::TempoMap::midi_clock_beat_at_or_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  888 | 
      |                                                                           
  889 |                 /* libtemporal enums */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~                                   
  890 |                 .beginNamespace ("TimeDomain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
  891 |                 .addConst ("AudioTime", Temporal::AudioTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  892 |                 .addConst ("BeatTime", Temporal::BeatTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  893 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                          
  894 | 
      |                                                                           
  895 |                 .beginNamespace ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~                                 
  896 |                 .beginNamespace ("Type")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                                  
  897 |                 .addConst ("Ramp", Temporal::Tempo::Type(Temporal::Tempo::Ramped))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  898 |                 .addConst ("Constant", Temporal::Tempo::Type(Temporal::Tempo::Constant))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  899 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                          
  900 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                          
  901 | 
      |                                                                           
  902 |                 .endNamespace () /* end of Temporal namespace */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  903 | 
      |                                                                           
  904 |                 .beginNamespace ("Evoral")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                
  905 |                 .beginClass <Evoral::Event<samplepos_t> > ("Event")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  906 |                 .addFunction ("clear", &Evoral::Event<samplepos_t>::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  907 |                 .addFunction ("size", &Evoral::Event<samplepos_t>::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  908 |                 .addFunction ("set_buffer", &Evoral::Event<samplepos_t>::set_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  909 |                 .addFunction ("buffer", (uint8_t*(Evoral::Event<samplepos_t>::*)())&Evoral::Event<samplepos_t>::buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  910 |                 .addFunction ("time", (samplepos_t (Evoral::Event<samplepos_t>::*)())&Evoral::Event<samplepos_t>::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  911 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                              
  912 | 
      |                                                                           
  913 |                 .beginClass <Evoral::Parameter> ("Parameter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  914 |                 .addConstructor <void (*) (uint32_t, uint8_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Evoral::Parameter*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Temporal::Range]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Temporal::Range]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Temporal::Range; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<Temporal::timepos_t, luabridge::TypeList<Temporal::timepos_t, void> >; T = Temporal::Range; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(Temporal::timepos_t, Temporal::timepos_t); T = Temporal::Range]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:961:73:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                              
  636 | 
      |                                                                                        
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                           
  638 | 
      |                                                                                        
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  641 | 
      |                                                                                        
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  647 | 
      |                                                                                        
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  673 | 
      |                                                                                        
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                        
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  690 | #endif
      | ~~~~~~                                                                                 
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  706 | 
      |                                                                                        
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                  
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  709 |                 .addOperator ("__add", CPPOPERATOR(Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  710 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::timecnt_t, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  711 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  712 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  713 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  714 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timecnt_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  715 |                 .addStaticFunction ("zero", &Temporal::timecnt_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  716 |                 .addStaticFunction ("max", (Temporal::timecnt_t const & (*)()) &Temporal::timecnt_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717 |                 .addStaticFunction ("from_samples", static_cast<Temporal::timecnt_t(*)(Temporal::samplepos_t)>(&Temporal::timecnt_t::from_samples))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  718 |                 .addStaticFunction ("from_ticks", static_cast<Temporal::timecnt_t(*)(int64_t)>(&Temporal::timecnt_t::from_ticks))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  719 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                        
  720 |                 .addStaticFunction ("from_superclock", static_cast<Temporal::timecnt_t(*)(superclock_t)>(&Temporal::timecnt_t::from_superclock))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                 .addFunction ("superclocks", &Temporal::timecnt_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  722 | #endif
      | ~~~~~~                                                                                 
  723 |                 .addFunction ("magnitude", &Temporal::timecnt_t::magnitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  724 |                 .addFunction ("position", &Temporal::timecnt_t::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  725 |                 .addFunction ("set_position", &Temporal::timecnt_t::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  726 |                 .addFunction ("is_positive", &Temporal::timecnt_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  727 |                 .addFunction ("is_negative", &Temporal::timecnt_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  728 |                 .addFunction ("is_zero", &Temporal::timecnt_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  729 |                 .addFunction ("abs", &Temporal::timecnt_t::abs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
  730 |                 .addFunction ("time_domain", &Temporal::timecnt_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  731 |                 .addFunction ("set_time_domain", &Temporal::timecnt_t::set_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 .addFunction ("samples", &Temporal::timecnt_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  733 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  734 |                 .addFunction ("beats", &Temporal::timecnt_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  735 |                 .addFunction ("ticks", &Temporal::timecnt_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  736 |                 .addFunction ("str", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
  737 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  738 |                 .addFunction ("decrement", &Temporal::timecnt_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  739 |                 .addMetamethod ("__tostring", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  740 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  741 | 
      |                                                                                        
  742 |                 .beginClass <Temporal::BBT_Time> ("BBT_TIME")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  743 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  744 |                 .addData ("bars", &Temporal::BBT_Time::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
  745 |                 .addData ("beats", &Temporal::BBT_Time::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
  746 |                 .addData ("ticks", &Temporal::BBT_Time::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
  747 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Time, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  748 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Time, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  749 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Time, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  750 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
  751 |                 .addMetamethod ("__tostring", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  752 |                 // .addStaticData ("ticks_per_beat", &Temporal::ticks_per_beat, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  753 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  754 | 
      |                                                                                        
  755 |                 .deriveClass <Temporal::BBT_Argument, Temporal::BBT_Time> ("BBT_Argument")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  756 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  757 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  758 | 
      |                                                                                        
  759 |                 .beginClass <Temporal::BBT_Offset> ("BBT_Offset")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
  760 |                 .addConstructor <void (*) (uint32_t, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  761 |                 .addData ("bars", &Temporal::BBT_Offset::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
  762 |                 .addData ("beats", &Temporal::BBT_Offset::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
  763 |                 .addData ("ticks", &Temporal::BBT_Offset::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
  764 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Offset, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  765 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Offset, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  766 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Offset, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
  767 |                 .addOperator ("__add", CPPOPERATOR(Temporal::BBT_Offset, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  768 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::BBT_Offset, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  769 | #if 0
      | ~~~~~                                                                                  
  770 |                 .addOperator ("__mul", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  771 |                 .addOperator ("__div", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  772 | #endif
      | ~~~~~~                                                                                 
  773 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
  774 |                 .addMetamethod ("__tostring", &Temporal::BBT_Offset::str) // XXX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  775 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  776 | 
      |                                                                                        
  777 |                 .beginClass <Temporal::Tempo> ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
  778 |                 .addConstructor <void (*) (double, double, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  779 |                 .addFunction ("note_type", &Temporal::Tempo::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  780 |                 .addFunction ("note_types_per_minute",  (double (Temporal::Tempo::*)() const)&Temporal::Tempo::note_types_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  781 |                 .addFunction ("quarter_notes_per_minute", &Temporal::Tempo::quarter_notes_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  782 |                 .addFunction ("samples_per_quarter_note", &Temporal::Tempo::samples_per_quarter_note)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  783 |                 .addFunction ("samples_per_note_type", &Temporal::Tempo::samples_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  784 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                        
  785 |                 .addFunction ("superclocks_per_note_type", (superclock_t (Temporal::Tempo::*)() const)&Temporal::Tempo::superclocks_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  786 | #endif
      | ~~~~~~                                                                                 
  787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  788 | 
      |                                                                                        
  789 |                 .beginClass <Temporal::Meter> ("Meter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
  790 |                 .addConstructor <void (*) (double, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
  791 |                 .addFunction ("divisions_per_bar", &Temporal::Meter::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  792 |                 .addFunction ("note_value", &Temporal::Meter::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  793 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  794 | 
      |                                                                                        
  795 |                 .beginClass <Temporal::Point> ("Point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
  796 |                 .addFunction ("sclock", &Temporal::Point::sclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
  797 |                 .addFunction ("beats", &Temporal::Point::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
  798 |                 .addFunction ("sample", &Temporal::Point::sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
  799 |                 .addFunction ("bbt", &Temporal::Point::bbt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
  800 |                 .addFunction ("time", &Temporal::Point::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  801 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  802 | 
      |                                                                                        
  803 |                 /* FIXME, direct access to parent class Temporal::Tempo fails here,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  804 |                  * even thought it is access via UserdataPtr at the same address */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  805 |                 .deriveClass <Temporal::TempoPoint, Temporal::Tempo> ("TempoPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  806 |                 .addCast<Temporal::Tempo> ("to_tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                 
  807 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                 
  808 |                 .addFunction ("quarters_at_sample", &Temporal::TempoPoint::quarters_at_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  809 |                 .addFunction ("time", &Temporal::TempoPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
  810 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  811 | 
      |                                                                                        
  812 |                 .deriveClass <Temporal::MeterPoint, Temporal::Meter> ("MeterPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  813 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                 
  814 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  815 | 
      |                                                                                        
  816 |                 .beginClass <Temporal::TempoMetric> ("TempoMetric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  817 |                 .addFunction ("tempo", &Temporal::TempoMetric::tempo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  818 |                 .addFunction ("meter", &Temporal::TempoMetric::meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  819 |                 .addFunction ("sample_at", &Temporal::TempoMetric::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  820 |                 .addFunction ("quarters_at", &Temporal::TempoMetric::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  821 |                 .addFunction ("note_type", &Temporal::TempoMetric::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  822 |                 .addFunction ("note_value", &Temporal::TempoMetric::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  823 |                 .addFunction ("divisions_per_bar", &Temporal::TempoMetric::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  824 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  825 | 
      |                                                                                        
  826 |                 .deriveClass <Temporal::TempoMapPoint, Temporal::Point> ("TempoMapPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  827 |                 .addCast<Temporal::TempoMetric> ("to_tempometric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
  828 |                 .addFunction ("time", &Temporal::TempoMapPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  829 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  830 | 
      |                                                                                        
  831 |                 .beginStdVector <Temporal::TempoMapPoint> ("TempoMapPoints")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  832 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  833 | 
      |                                                                                        
  834 |                 .beginWSPtrClass <Temporal::TempoMap> ("TempoMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
  835 |                 /* we cannot use ::fetch or ::use because LuaBridge cannot overload
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  836 |                  * shared_ptr<const T> and shared_ptr<T> in the same class.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  837 |                  */
      |                  ~~                                                                    
  838 |                 .addStaticFunction ("read", &Temporal::TempoMap::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  839 |                 .addStaticFunction ("write_copy", &Temporal::TempoMap::write_copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  840 |                 .addStaticFunction ("update", &Temporal::TempoMap::update)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  841 |                 .addStaticFunction ("abort_update", &Temporal::TempoMap::abort_update)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  842 |                 .addFunction ("set_tempo", (Temporal::TempoPoint& (Temporal::TempoMap::*)(Temporal::Tempo const &,Temporal::timepos_t const &)) &Temporal::TempoMap::set_tempo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  843 |                 .addFunction ("set_meter", (Temporal::MeterPoint& (Temporal::TempoMap::*)(Temporal::Meter const &,Temporal::timepos_t const &)) &Temporal::TempoMap::set_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  844 |                 .addFunction ("set_ramped", &Temporal::TempoMap::set_ramped)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  845 |                 .addFunction ("set_continuing", &Temporal::TempoMap::set_continuing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  846 | 
      |                                                                                        
  847 |                 .addFunction ("tempo_at", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  848 |                 .addFunction ("tempo_at_bbt", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  849 |                 .addFunction ("tempo_at_beats", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  850 | 
      |                                                                                        
  851 |                 .addFunction ("meter_at", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  852 |                 .addFunction ("meter_at_bbt", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  853 |                 .addFunction ("meter_at_beats", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 | 
      |                                                                                        
  855 |                 .addFunction ("bbt_at", (Temporal::BBT_Argument (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::bbt_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  856 |                 .addFunction ("bbt_at_beats", (Temporal::BBT_Argument (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::bbt_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  857 | 
      |                                                                                        
  858 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                        
  859 |                 .addFunction ("tempo_at_sc", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(superclock_t) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("meter_at_sc", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(superclock_t) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("superclock_at", (superclock_t (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("superclock_at_bbt", (superclock_t (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .addFunction ("superclock_at_beats", (superclock_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  864 | #endif
      | ~~~~~~                                                                                 
  865 | 
      |                                                                                        
  866 |                 .addFunction ("quarters_at", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("quarters_at_bbt", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("quarters_at_sample", &Temporal::TempoMap::quarters_at_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 | 
      |                                                                                        
  870 |                 .addFunction ("sample_at", (samplepos_t (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .addFunction ("sample_at_bbt", (samplepos_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  872 |                 .addFunction ("sample_at_beats", (samplepos_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  873 | 
      |                                                                                        
  874 |                 .addFunction ("bbt_duration_at", &Temporal::TempoMap::bbt_duration_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  875 |                 .addFunction ("bbtwalk_to_quarters", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::Beats const &, Temporal::BBT_Offset const &) const) &Temporal::TempoMap::bbtwalk_to_quarters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  876 |                 .addFunction ("bbtwalk_to_quarters_bbt", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::BBT_Argument const &, Temporal::BBT_Offset const &) const) &Temporal::TempoMap::bbtwalk_to_quarters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 | 
      |                                                                                        
  878 |                 .addFunction ("convert_duration", &Temporal::TempoMap::convert_duration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("bbt_walk", &Temporal::TempoMap::bbt_walk)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  880 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                        
  881 |                 .addRefFunction ("grid", &Temporal::TempoMap::grid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  882 | #endif
      | ~~~~~~                                                                                 
  883 | 
      |                                                                                        
  884 |                 .addFunction ("quarters_per_minute_at", &Temporal::TempoMap::quarters_per_minute_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  885 |                 .addFunction ("round_to_bar", &Temporal::TempoMap::round_to_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
  886 |                 .addRefFunction ("midi_clock_beat_at_or_after", &Temporal::TempoMap::midi_clock_beat_at_or_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  888 | 
      |                                                                                        
  889 |                 /* libtemporal enums */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~                                                
  890 |                 .beginNamespace ("TimeDomain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                         
  891 |                 .addConst ("AudioTime", Temporal::AudioTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
  892 |                 .addConst ("BeatTime", Temporal::BeatTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
  893 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                                       
  894 | 
      |                                                                                        
  895 |                 .beginNamespace ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~                                              
  896 |                 .beginNamespace ("Type")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                                               
  897 |                 .addConst ("Ramp", Temporal::Tempo::Type(Temporal::Tempo::Ramped))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  898 |                 .addConst ("Constant", Temporal::Tempo::Type(Temporal::Tempo::Constant))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  899 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                                       
  900 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                                       
  901 | 
      |                                                                                        
  902 |                 .endNamespace () /* end of Temporal namespace */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
  903 | 
      |                                                                                        
  904 |                 .beginNamespace ("Evoral")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                             
  905 |                 .beginClass <Evoral::Event<samplepos_t> > ("Event")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  906 |                 .addFunction ("clear", &Evoral::Event<samplepos_t>::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
  907 |                 .addFunction ("size", &Evoral::Event<samplepos_t>::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  908 |                 .addFunction ("set_buffer", &Evoral::Event<samplepos_t>::set_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  909 |                 .addFunction ("buffer", (uint8_t*(Evoral::Event<samplepos_t>::*)())&Evoral::Event<samplepos_t>::buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  910 |                 .addFunction ("time", (samplepos_t (Evoral::Event<samplepos_t>::*)())&Evoral::Event<samplepos_t>::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  911 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  912 | 
      |                                                                                        
  913 |                 .beginClass <Evoral::Parameter> ("Parameter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  914 |                 .addConstructor <void (*) (uint32_t, uint8_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  915 |                 .addFunction ("type", &Evoral::Parameter::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
  916 |                 .addFunction ("channel", &Evoral::Parameter::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  917 |                 .addFunction ("id", &Evoral::Parameter::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
  918 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  919 | 
      |                                                                                        
  920 |                 .beginClass <Evoral::ControlEvent> ("ControlEvent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  921 |                 .addData ("when", &Evoral::ControlEvent::when)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
  922 |                 .addData ("value", &Evoral::ControlEvent::value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
  923 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  924 | 
      |                                                                                        
  925 |                 .beginWSPtrClass <Evoral::ControlList> ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  926 |                 .addCast<AutomationList> ("to_automationlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
  927 |                 .addFunction ("add", &Evoral::ControlList::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
  928 |                 .addFunction ("editor_add", &Evoral::ControlList::editor_add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
  929 |                 .addFunction ("thin", &Evoral::ControlList::thin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
  930 |                 .addFunction ("eval", &Evoral::ControlList::eval)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
  931 |                 .addRefFunction ("rt_safe_eval", &Evoral::ControlList::rt_safe_eval)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  932 |                 .addFunction ("interpolation", &Evoral::ControlList::interpolation)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  933 |                 .addFunction ("set_interpolation", &Evoral::ControlList::set_interpolation)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  934 |                 .addFunction ("truncate_end", &Evoral::ControlList::truncate_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  935 |                 .addFunction ("truncate_start", &Evoral::ControlList::truncate_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  936 |                 .addFunction ("clear", (void (Evoral::ControlList::*)(Temporal::timepos_t const &, timepos_t const &))&Evoral::ControlList::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  937 |                 .addFunction ("clear_list", (void (Evoral::ControlList::*)())&Evoral::ControlList::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  938 |                 .addFunction ("in_write_pass", &Evoral::ControlList::in_write_pass)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  939 |                 .addFunction ("events", &Evoral::ControlList::events)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  940 |                 .addFunction ("size", &Evoral::ControlList::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
  941 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  942 | 
      |                                                                                        
  943 |                 .beginWSPtrClass <Evoral::ControlSet> ("ControlSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
  944 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  945 | 
      |                                                                                        
  946 |                 .beginWSPtrClass <Evoral::Control> ("Control")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
  947 |                 .addFunction ("list", (std::shared_ptr<Evoral::ControlList>(Evoral::Control::*)())&Evoral::Control::list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  948 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  949 | 
      |                                                                                        
  950 |                 .beginClass <Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  951 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                                 
  952 |                 .addData ("lower", &Evoral::ParameterDescriptor::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  953 |                 .addData ("upper", &Evoral::ParameterDescriptor::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
  954 |                 .addData ("normal", &Evoral::ParameterDescriptor::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
  955 |                 .addData ("toggled", &Evoral::ParameterDescriptor::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
  956 |                 .addData ("logarithmic", &Evoral::ParameterDescriptor::logarithmic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  957 |                 .addData ("rangesteps", &Evoral::ParameterDescriptor::rangesteps)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  958 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
  959 | 
      |                                                                                        
  960 |                 .beginClass <Temporal::Range> ("Range")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
  961 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Temporal::Range*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = _VampHost::Vamp::RealTime]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = _VampHost::Vamp::RealTime]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = _VampHost::Vamp::RealTime; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<int, luabridge::TypeList<int, void> >; T = _VampHost::Vamp::RealTime; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(int, int); T = _VampHost::Vamp::RealTime]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1012:41:   required from here
 1008 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1009 |                 .beginNamespace ("Vamp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~               
 1010 | 
      |                                                        
 1011 |                 .beginClass<Vamp::RealTime> ("RealTime")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1012 |                 .addConstructor <void (*) (int, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to '_VampHost::Vamp::RealTime*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::TimelineRange]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::TimelineRange]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::TimelineRange; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<Temporal::timepos_t, luabridge::TypeList<Temporal::timepos_t, luabridge::TypeList<unsigned int, void> > >; T = ARDOUR::TimelineRange; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(Temporal::timepos_t, Temporal::timepos_t, unsigned int); T = ARDOUR::TimelineRange]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1139:83:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                        
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                                       
 1126 | 
      |                                                                                                  
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                         
 1128 | 
      |                                                                                                  
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                                           
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1134 | #endif
      | ~~~~~~                                                                                           
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                                     
 1137 | 
      |                                                                                                  
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                    
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::TimelineRange*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::ChanCount]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::ChanCount]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::ChanCount; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<ARDOUR::DataType, luabridge::TypeList<unsigned int, void> >; T = ARDOUR::ChanCount; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(ARDOUR::DataType, unsigned int); T = ARDOUR::ChanCount]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2396:51:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2001 | 
      |                                                                  
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                 
 2010 | 
      |                                                                  
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2038 | 
      |                                                                  
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2043 | 
      |                                                                  
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2072 | 
      |                                                                  
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2080 | 
      |                                                                  
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2089 | 
      |                                                                  
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2098 | 
      |                                                                  
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2104 | 
      |                                                                  
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2122 | 
      |                                                                  
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2133 | 
      |                                                                  
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2138 | 
      |                                                                  
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2141 | 
      |                                                                  
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2145 | 
      |                                                                  
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2151 | 
      |                                                                  
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2158 | 
      |                                                                  
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2163 | 
      |                                                                  
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2167 | 
      |                                                                  
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2172 | 
      |                                                                  
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2179 | 
      |                                                                  
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2208 | 
      |                                                                  
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2211 | 
      |                                                                  
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2214 | 
      |                                                                  
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2218 | 
      |                                                                  
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2221 | 
      |                                                                  
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2224 | 
      |                                                                  
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2227 | 
      |                                                                  
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                           
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2235 | 
      |                                                                  
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2240 | 
      |                                                                  
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2244 | 
      |                                                                  
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2247 | 
      |                                                                  
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2251 | 
      |                                                                  
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2255 | 
      |                                                                  
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2259 | 
      |                                                                  
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2263 | 
      |                                                                  
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2267 | 
      |                                                                  
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2272 | 
      |                                                                  
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2278 | 
      |                                                                  
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2283 | 
      |                                                                  
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2288 | 
      |                                                                  
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2292 | 
      |                                                                  
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2296 | 
      |                                                                  
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2300 | 
      |                                                                  
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2304 | 
      |                                                                  
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2308 | 
      |                                                                  
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2312 | 
      |                                                                  
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2316 | 
      |                                                                  
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2320 | 
      |                                                                  
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2324 | 
      |                                                                  
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2328 | 
      |                                                                  
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2332 | 
      |                                                                  
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2338 | 
      |                                                                  
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2342 | 
      |                                                                  
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2346 | 
      |                                                                  
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2350 | 
      |                                                                  
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2354 | 
      |                                                                  
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2357 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2358 | 
      |                                                                  
 2359 |                 .beginConstStdCPtrList <Location> ("LocationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2360 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2361 | 
      |                                                                  
 2362 |                 .beginConstStdVector <Evoral::Parameter> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2363 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2364 | 
      |                                                                  
 2365 |                 .beginStdList <std::shared_ptr<AutomationControl> > ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2366 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2367 | 
      |                                                                  
 2368 |                 .beginPtrStdList <std::shared_ptr<AutomationControl> > ("ControlListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2369 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <AutomationControl> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2370 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2371 | 
      |                                                                  
 2372 |                 .beginStdList <std::shared_ptr<Evoral::Note<Temporal::Beats> > > ("NotePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2373 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2374 | 
      |                                                                  
 2375 |                 .beginStdList <std::shared_ptr<Evoral::Event<Temporal::Beats> > > ("EventPtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2376 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2377 | 
      |                                                                  
 2378 |                 .beginStdList <std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > > ("PatchChangePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2379 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2380 | 
      |                                                                  
 2381 |                 .beginConstStdCPtrList <Evoral::ControlEvent> ("EventList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2382 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2383 | 
      |                                                                  
 2384 | #if 0  // depends on Evoal:: Note, Beats see note_fixer.h
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2385 |         // typedef Evoral::Note<Temporal::Beats> Note
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2386 |         // std::set< std::weak_ptr<Note> >
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2387 |                 .beginStdSet <std::weak_ptr<Note> > ("WeakNoteSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2388 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2389 | #endif
      | ~~~~~~                                                           
 2390 | 
      |                                                                  
 2391 |         // std::list<std::weak_ptr<Source> >
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2392 |                 .beginConstStdList <std::weak_ptr<Source> > ("WeakSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2393 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2394 | 
      |                                                                  
 2395 |                 .beginClass <ChanCount> ("ChanCount")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2396 |                 .addConstructor <void (*) (DataType, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::ChanCount*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::DataType]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::DataType]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::DataType; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<std::__cxx11::basic_string<char>, void>; T = ARDOUR::DataType; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(std::__cxx11::basic_string<char>); T = ARDOUR::DataType]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2408:44:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2001 | 
      |                                                           
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                          
 2010 | 
      |                                                           
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2038 | 
      |                                                           
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2043 | 
      |                                                           
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2072 | 
      |                                                           
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2080 | 
      |                                                           
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2089 | 
      |                                                           
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2098 | 
      |                                                           
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2104 | 
      |                                                           
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2122 | 
      |                                                           
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2133 | 
      |                                                           
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2138 | 
      |                                                           
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2141 | 
      |                                                           
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2145 | 
      |                                                           
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2151 | 
      |                                                           
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2158 | 
      |                                                           
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2163 | 
      |                                                           
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2167 | 
      |                                                           
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2172 | 
      |                                                           
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2179 | 
      |                                                           
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2208 | 
      |                                                           
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2211 | 
      |                                                           
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2214 | 
      |                                                           
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2218 | 
      |                                                           
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2221 | 
      |                                                           
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2224 | 
      |                                                           
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2227 | 
      |                                                           
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                    
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2235 | 
      |                                                           
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2240 | 
      |                                                           
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2244 | 
      |                                                           
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2247 | 
      |                                                           
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2251 | 
      |                                                           
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2255 | 
      |                                                           
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2259 | 
      |                                                           
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2263 | 
      |                                                           
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2267 | 
      |                                                           
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2272 | 
      |                                                           
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2278 | 
      |                                                           
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2283 | 
      |                                                           
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2288 | 
      |                                                           
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2292 | 
      |                                                           
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2296 | 
      |                                                           
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2300 | 
      |                                                           
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2304 | 
      |                                                           
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2308 | 
      |                                                           
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2312 | 
      |                                                           
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2316 | 
      |                                                           
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2320 | 
      |                                                           
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2324 | 
      |                                                           
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2328 | 
      |                                                           
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2332 | 
      |                                                           
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2338 | 
      |                                                           
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2342 | 
      |                                                           
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2346 | 
      |                                                           
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2350 | 
      |                                                           
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2354 | 
      |                                                           
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2357 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2358 | 
      |                                                           
 2359 |                 .beginConstStdCPtrList <Location> ("LocationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2360 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2361 | 
      |                                                           
 2362 |                 .beginConstStdVector <Evoral::Parameter> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2363 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2364 | 
      |                                                           
 2365 |                 .beginStdList <std::shared_ptr<AutomationControl> > ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2366 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2367 | 
      |                                                           
 2368 |                 .beginPtrStdList <std::shared_ptr<AutomationControl> > ("ControlListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2369 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <AutomationControl> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2370 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2371 | 
      |                                                           
 2372 |                 .beginStdList <std::shared_ptr<Evoral::Note<Temporal::Beats> > > ("NotePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2373 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2374 | 
      |                                                           
 2375 |                 .beginStdList <std::shared_ptr<Evoral::Event<Temporal::Beats> > > ("EventPtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2376 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2377 | 
      |                                                           
 2378 |                 .beginStdList <std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > > ("PatchChangePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2379 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2380 | 
      |                                                           
 2381 |                 .beginConstStdCPtrList <Evoral::ControlEvent> ("EventList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2382 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2383 | 
      |                                                           
 2384 | #if 0  // depends on Evoal:: Note, Beats see note_fixer.h
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2385 |         // typedef Evoral::Note<Temporal::Beats> Note
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2386 |         // std::set< std::weak_ptr<Note> >
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2387 |                 .beginStdSet <std::weak_ptr<Note> > ("WeakNoteSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2388 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2389 | #endif
      | ~~~~~~                                                    
 2390 | 
      |                                                           
 2391 |         // std::list<std::weak_ptr<Source> >
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2392 |                 .beginConstStdList <std::weak_ptr<Source> > ("WeakSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2393 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2394 | 
      |                                                           
 2395 |                 .beginClass <ChanCount> ("ChanCount")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2396 |                 .addConstructor <void (*) (DataType, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2397 |                 .addFunction ("get", &ChanCount::get)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2398 |                 .addFunction ("set", &ChanCount::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2399 |                 .addFunction ("set_audio", &ChanCount::set_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2400 |                 .addFunction ("set_midi", &ChanCount::set_midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2401 |                 .addFunction ("n_audio", &ChanCount::n_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2402 |                 .addFunction ("n_midi", &ChanCount::n_midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2403 |                 .addFunction ("n_total", &ChanCount::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2404 |                 .addFunction ("reset", &ChanCount::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2405 |                 .endClass()
      |                 ~~~~~~~~~~~                               
 2406 | 
      |                                                           
 2407 |                 .beginClass <DataType> ("DataType")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2408 |                 .addConstructor <void (*) (std::string)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::DataType*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::LuaAPI::Vamp]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::LuaAPI::Vamp]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::LuaAPI::Vamp; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<const std::__cxx11::basic_string<char>&, luabridge::TypeList<float, void> >; T = ARDOUR::LuaAPI::Vamp; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(const std::__cxx11::basic_string<char>&, float); T = ARDOUR::LuaAPI::Vamp]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3231:58:   required from here
 3030 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 3031 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 3032 |                 .beginClass <Session> ("Session")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 3033 |                 .addFunction ("scripts_changed", &Session::scripts_changed) // used internally
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3034 |                 .addFunction ("engine_speed", &Session::engine_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 3035 |                 .addFunction ("actual_speed", &Session::actual_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 3036 |                 .addFunction ("transport_speed", &Session::transport_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3037 |                 .addFunction ("transport_stopped", &Session::transport_stopped)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3038 |                 .addFunction ("transport_stopped_or_stopping", &Session::transport_stopped_or_stopping)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3039 |                 .addFunction ("transport_state_rolling", &Session::transport_state_rolling)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3040 |                 .addFunction ("transport_rolling", &Session::transport_rolling)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3041 |                 .addFunction ("transport_will_roll_forwards", &Session::transport_will_roll_forwards)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3042 |                 .addFunction ("request_transport_speed", &Session::request_transport_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3043 |                 .addFunction ("transport_sample", &Session::transport_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3044 |                 .addFunction ("sample_rate", &Session::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3045 |                 .addFunction ("nominal_sample_rate", &Session::nominal_sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3046 |                 .addFunction ("samples_per_timecode_frame", &Session::samples_per_timecode_frame)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3047 |                 .addFunction ("timecode_frames_per_hour", &Session::timecode_frames_per_hour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3048 |                 .addFunction ("timecode_frames_per_second", &Session::timecode_frames_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3049 |                 .addFunction ("timecode_drop_frames", &Session::timecode_drop_frames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3050 |                 .addFunction ("request_locate", &Session::request_locate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3051 |                 .addFunction ("request_roll", &Session::request_roll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 3052 |                 .addFunction ("request_stop", &Session::request_stop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 3053 |                 .addFunction ("request_play_loop", &Session::request_play_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3054 |                 .addFunction ("request_bounded_roll", &Session::request_bounded_roll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3055 |                 .addFunction ("preroll_samples", &Session::preroll_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3056 |                 .addFunction ("request_preroll_record_trim", &Session::request_preroll_record_trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3057 |                 .addFunction ("request_count_in_record", &Session::request_count_in_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3058 |                 .addFunction ("get_play_loop", &Session::get_play_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3059 |                 .addFunction ("get_xrun_count", &Session::get_xrun_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3060 |                 .addFunction ("reset_xrun_count", &Session::reset_xrun_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3061 |                 .addFunction ("last_transport_start", &Session::last_transport_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3062 |                 .addFunction ("goto_start", &Session::goto_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 3063 |                 .addFunction ("goto_end", &Session::goto_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 3064 |                 .addFunction ("current_start_sample", &Session::current_start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3065 |                 .addFunction ("current_end_sample", &Session::current_end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3066 |                 .addFunction ("actively_recording", &Session::actively_recording)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3067 |                 .addFunction ("new_audio_track", &Session::new_audio_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3068 |                 .addFunction ("new_audio_route", &Session::new_audio_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3069 |                 .addFunction ("new_midi_track", &Session::new_midi_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3070 |                 .addFunction ("new_midi_route", &Session::new_midi_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3071 | 
      |                                                                         
 3072 |                 .addFunction ("add_master_bus", &Session::add_master_bus)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3073 | 
      |                                                                         
 3074 |                 .addFunction ("get_routes", &Session::get_routes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 3075 |                 .addFunction ("get_tracks", &Session::get_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 3076 |                 .addFunction ("get_stripables", (StripableList (Session::*)() const)&Session::get_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3077 |                 .addFunction ("get_routelist", &Session::get_routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3078 |                 .addFunction ("plot_process_graph", &Session::plot_process_graph)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3079 | 
      |                                                                         
 3080 |                 .addFunction ("bundles", &Session::bundles)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 3081 | 
      |                                                                         
 3082 |                 .addFunction ("apply_nth_mixer_scene", (bool (Session::*)(size_t))&Session::apply_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3083 |                 .addFunction ("apply_nth_mixer_scene_to", (bool (Session::*)(size_t, RouteList const&))&Session::apply_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3084 |                 .addFunction ("store_nth_mixer_scene", &Session::store_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3085 |                 .addFunction ("nth_mixer_scene_valid", &Session::nth_mixer_scene_valid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3086 |                 .addFunction ("nth_mixer_scene", &Session::nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3087 | 
      |                                                                         
 3088 |                 .addFunction ("name", &Session::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 3089 |                 .addFunction ("path", &Session::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 3090 |                 .addFunction ("record_status", &Session::record_status)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3091 |                 .addFunction ("maybe_enable_record", &Session::maybe_enable_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3092 |                 .addFunction ("disable_record", &Session::disable_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3093 |                 .addFunction ("route_by_id", &Session::route_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3094 |                 .addFunction ("route_by_name", &Session::route_by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3095 |                 .addFunction ("stripable_by_id", &Session::stripable_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3096 |                 .addFunction ("get_remote_nth_stripable", &Session::get_remote_nth_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3097 |                 .addFunction ("get_remote_nth_route", &Session::get_remote_nth_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3098 |                 .addFunction ("route_by_selected_count", &Session::route_by_selected_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3099 |                 .addFunction ("source_by_id", &Session::source_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 3100 |                 .addFunction ("controllable_by_id", &Session::controllable_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3101 |                 .addFunction ("processor_by_id", &Session::processor_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3102 |                 .addFunction ("snap_name", &Session::snap_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3103 |                 .addFunction ("monitor_out", &Session::monitor_out)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3104 |                 .addFunction ("master_out", &Session::master_out)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 3105 |                 .addFunction ("master_volume", &Session::master_volume)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3106 |                 .addFunction ("surround_master", &Session::surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3107 |                 .addFunction ("add_internal_send", (void (Session::*)(std::shared_ptr<Route>, std::shared_ptr<Processor>, std::shared_ptr<Route>))&Session::add_internal_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3108 |                 .addFunction ("add_internal_sends", &Session::add_internal_sends)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3109 |                 .addFunction ("locations", &Session::locations)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3110 |                 .addFunction ("soloing", &Session::soloing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 3111 |                 .addFunction ("listening", &Session::listening)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3112 |                 .addFunction ("solo_isolated", &Session::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3113 |                 .addFunction ("cancel_all_solo", &Session::cancel_all_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3114 |                 .addFunction ("clear_all_solo_state", &Session::clear_all_solo_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3115 |                 .addFunction ("set_controls", &Session::set_controls)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 3116 |                 .addFunction ("set_control", &Session::set_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3117 |                 .addFunction ("set_exclusive_input_active", &Session::set_exclusive_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3118 |                 .addFunction ("begin_reversible_command", (void (Session::*)(const std::string&))&Session::begin_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3119 |                 .addFunction ("commit_reversible_command", &Session::commit_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3120 |                 .addFunction ("abort_reversible_command", &Session::abort_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3121 |                 .addFunction ("collected_undo_commands", &Session::collected_undo_commands)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3122 |                 .addFunction ("abort_empty_reversible_command", &Session::abort_empty_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3123 |                 .addFunction ("add_command", &Session::add_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3124 |                 .addFunction ("add_stateful_diff_command", &Session::add_stateful_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3125 |                 .addFunction ("playlists", &Session::playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3126 |                 .addFunction ("engine", (AudioEngine& (Session::*)())&Session::engine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3127 |                 .addFunction ("get_block_size", &Session::get_block_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3128 |                 .addFunction ("worst_output_latency", &Session::worst_output_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3129 |                 .addFunction ("worst_input_latency", &Session::worst_input_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3130 |                 .addFunction ("worst_route_latency", &Session::worst_route_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3131 |                 .addFunction ("io_latency", &Session::io_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 3132 |                 .addFunction ("worst_latency_preroll", &Session::worst_latency_preroll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3133 |                 .addFunction ("worst_latency_preroll_buffer_size_ceil", &Session::worst_latency_preroll_buffer_size_ceil)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3134 |                 .addFunction ("cfg", &Session::cfg)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 3135 |                 .addFunction ("route_groups", &Session::route_groups)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 3136 |                 .addFunction ("new_route_group", &Session::new_route_group)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3137 |                 .addFunction ("session_range_is_free", &Session::session_range_is_free)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3138 |                 .addFunction ("set_session_range_is_free", &Session::set_session_range_is_free)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3139 |                 .addFunction ("set_session_extents", &Session::set_session_extents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3140 |                 .addFunction ("maybe_update_session_range", &Session::maybe_update_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3141 |                 .addFunction ("remove_route", &Session::remove_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 3142 |                 .addFunction ("remove_routes", &Session::remove_routes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3143 |                 .addFunction ("remove_route_group", (void (Session::*)(RouteGroup*))&Session::remove_route_group)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3144 |                 .addFunction ("cut_copy_section", &Session::cut_copy_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3145 |                 .addFunction ("vca_manager", &Session::vca_manager_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3146 |                 .addExtCFunction ("timecode_to_sample_lua", ARDOUR::LuaAPI::timecode_to_sample_lua)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3147 |                 .addExtCFunction ("sample_to_timecode_lua", ARDOUR::LuaAPI::sample_to_timecode_lua)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3148 |                 .addExtCFunction ("simple_export", &ARDOUR::LuaAPI::simple_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3149 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                            
 3150 | 
      |                                                                         
 3151 |                 .beginClass <RegionFactory> ("RegionFactory")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 3152 |                 .addStaticFunction ("region_by_id", &RegionFactory::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3153 |                 .addStaticFunction ("regions", &RegionFactory::regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3154 |                 .addStaticFunction ("clone_region", static_cast<std::shared_ptr<Region> (*)(std::shared_ptr<Region>, bool, bool)>(&RegionFactory::create))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3155 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                            
 3156 | 
      |                                                                         
 3157 |                 /* session enums (rt-safe, common) */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 3158 |                 .beginNamespace ("Session")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 3159 | 
      |                                                                         
 3160 |                 .beginNamespace ("RecordState")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 3161 |                 .addConst ("Disabled", ARDOUR::Session::RecordState(Session::Disabled))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3162 |                 .addConst ("Enabled", ARDOUR::Session::RecordState(Session::Enabled))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3163 |                 .addConst ("Recording", ARDOUR::Session::RecordState(Session::Recording))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3164 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                        
 3165 | 
      |                                                                         
 3166 |                 .endNamespace () // end Session enums
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 3167 | 
      |                                                                         
 3168 |                 /* ardour enums (rt-safe, common) */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 3169 |                 .beginNamespace ("LocationFlags")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 3170 |                 .addConst ("IsMark", ARDOUR::Location::Flags(Location::IsMark))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3171 |                 .addConst ("IsAutoPunch", ARDOUR::Location::Flags(Location::IsAutoPunch))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3172 |                 .addConst ("IsAutoLoop", ARDOUR::Location::Flags(Location::IsAutoLoop))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3173 |                 .addConst ("IsHidden", ARDOUR::Location::Flags(Location::IsHidden))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3174 |                 .addConst ("IsCDMarker", ARDOUR::Location::Flags(Location::IsCDMarker))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3175 |                 .addConst ("IsCueMarker", ARDOUR::Location::Flags(Location::IsCueMarker))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3176 |                 .addConst ("IsSection", ARDOUR::Location::Flags(Location::IsSection))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3177 |                 .addConst ("IsRangeMarker", ARDOUR::Location::Flags(Location::IsRangeMarker))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3178 |                 .addConst ("IsSessionRange", ARDOUR::Location::Flags(Location::IsSessionRange))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3179 |                 .addConst ("IsSkip", ARDOUR::Location::Flags(Location::IsSkip))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3180 |                 .addConst ("IsSkipping", ARDOUR::Location::Flags(Location::IsSkipping))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3181 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                        
 3182 | 
      |                                                                         
 3183 |                 .beginNamespace ("LuaAPI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 3184 |                 .addFunction ("nil_proc", ARDOUR::LuaAPI::nil_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3185 |                 .addFunction ("new_luaproc", ARDOUR::LuaAPI::new_luaproc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3186 |                 .addFunction ("new_send", ARDOUR::LuaAPI::new_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3187 |                 .addFunction ("new_luaproc_with_time_domain", ARDOUR::LuaAPI::new_luaproc_with_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3188 |                 .addFunction ("list_plugins", ARDOUR::LuaAPI::list_plugins)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3189 |                 .addFunction ("dump_untagged_plugins", ARDOUR::LuaAPI::dump_untagged_plugins)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3190 |                 .addFunction ("new_plugin_info", ARDOUR::LuaAPI::new_plugin_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3191 |                 .addFunction ("new_plugin", ARDOUR::LuaAPI::new_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3192 |                 .addFunction ("new_plugin_with_time_domain", ARDOUR::LuaAPI::new_plugin_with_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3193 |                 .addFunction ("set_processor_param", ARDOUR::LuaAPI::set_processor_param)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3194 |                 .addFunction ("set_plugin_insert_param", ARDOUR::LuaAPI::set_plugin_insert_param)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3195 |                 .addFunction ("set_plugin_insert_property", ARDOUR::LuaAPI::set_plugin_insert_property)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3196 |                 .addCFunction ("get_plugin_insert_property", ARDOUR::LuaAPI::get_plugin_insert_property)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3197 |                 .addFunction ("reset_processor_to_default", ARDOUR::LuaAPI::reset_processor_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3198 |                 .addFunction ("set_automation_data", ARDOUR::LuaAPI::set_automation_data)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3199 |                 .addRefFunction ("get_processor_param", ARDOUR::LuaAPI::get_processor_param)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3200 |                 .addRefFunction ("get_plugin_insert_param", ARDOUR::LuaAPI::get_plugin_insert_param)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3201 |                 .addCFunction ("desc_scale_points", ARDOUR::LuaAPI::desc_scale_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3202 |                 .addCFunction ("plugin_automation", ARDOUR::LuaAPI::plugin_automation)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3203 |                 .addCFunction ("hsla_to_rgba", ARDOUR::LuaAPI::hsla_to_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3204 |                 .addCFunction ("color_to_rgba", ARDOUR::LuaAPI::color_to_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3205 |                 .addFunction ("ascii_dtostr", ARDOUR::LuaAPI::ascii_dtostr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3206 |                 .addFunction ("usleep", Glib::usleep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 3207 |                 .addFunction ("file_test", Glib::file_test)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 3208 |                 .addFunction ("file_get_contents", Glib::file_get_contents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3209 |                 .addFunction ("path_get_basename", Glib::path_get_basename)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3210 |                 .addFunction ("monotonic_time", ::g_get_monotonic_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3211 |                 .addCFunction ("build_filename", ARDOUR::LuaAPI::build_filename)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3212 |                 .addFunction ("new_noteptr", ARDOUR::LuaAPI::new_noteptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3213 |                 .addFunction ("note_list", ARDOUR::LuaAPI::note_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 3214 |                 .addFunction ("sysex_list", ARDOUR::LuaAPI::sysex_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3215 |                 .addFunction ("patch_change_list", ARDOUR::LuaAPI::patch_change_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3216 |                 .addCFunction ("sample_to_timecode", ARDOUR::LuaAPI::sample_to_timecode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3217 |                 .addCFunction ("timecode_to_sample", ARDOUR::LuaAPI::timecode_to_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3218 |                 .addFunction ("wait_for_process_callback", ARDOUR::LuaAPI::wait_for_process_callback)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3219 |                 .addFunction ("segfault", ARDOUR::LuaAPI::segfault)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3220 |                 .addFunction ("env", ARDOUR::LuaAPI::env)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 3221 | 
      |                                                                         
 3222 |                 .beginNamespace ("FileTest")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 3223 |                 .addConst ("IsRegular", Glib::FILE_TEST_IS_REGULAR)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3224 |                 .addConst ("IsSymlink", Glib::FILE_TEST_IS_SYMLINK)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3225 |                 .addConst ("IsDir", Glib::FILE_TEST_IS_DIR)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 3226 |                 .addConst ("IsExecutable", Glib::FILE_TEST_IS_EXECUTABLE)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3227 |                 .addConst ("Exists", Glib::FILE_TEST_EXISTS)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3228 |                 .endNamespace () // end LuaAPI
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 3229 | 
      |                                                                         
 3230 |                 .beginClass <ARDOUR::LuaAPI::Vamp> ("Vamp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 3231 |                 .addConstructor <void (*) (const std::string&, float)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::LuaAPI::Vamp*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::LuaAPI::Rubberband]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::LuaAPI::Rubberband]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::LuaAPI::Rubberband; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<std::shared_ptr<ARDOUR::AudioRegion>, luabridge::TypeList<bool, void> >; T = ARDOUR::LuaAPI::Rubberband; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(std::shared_ptr<ARDOUR::AudioRegion>, bool); T = ARDOUR::LuaAPI::Rubberband]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3241:67:   required from here
 3030 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                        
 3031 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                       
 3032 |                 .beginClass <Session> ("Session")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 3033 |                 .addFunction ("scripts_changed", &Session::scripts_changed) // used internally
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3034 |                 .addFunction ("engine_speed", &Session::engine_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3035 |                 .addFunction ("actual_speed", &Session::actual_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3036 |                 .addFunction ("transport_speed", &Session::transport_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3037 |                 .addFunction ("transport_stopped", &Session::transport_stopped)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 3038 |                 .addFunction ("transport_stopped_or_stopping", &Session::transport_stopped_or_stopping)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3039 |                 .addFunction ("transport_state_rolling", &Session::transport_state_rolling)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3040 |                 .addFunction ("transport_rolling", &Session::transport_rolling)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 3041 |                 .addFunction ("transport_will_roll_forwards", &Session::transport_will_roll_forwards)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3042 |                 .addFunction ("request_transport_speed", &Session::request_transport_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3043 |                 .addFunction ("transport_sample", &Session::transport_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 3044 |                 .addFunction ("sample_rate", &Session::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 3045 |                 .addFunction ("nominal_sample_rate", &Session::nominal_sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3046 |                 .addFunction ("samples_per_timecode_frame", &Session::samples_per_timecode_frame)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3047 |                 .addFunction ("timecode_frames_per_hour", &Session::timecode_frames_per_hour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3048 |                 .addFunction ("timecode_frames_per_second", &Session::timecode_frames_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3049 |                 .addFunction ("timecode_drop_frames", &Session::timecode_drop_frames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3050 |                 .addFunction ("request_locate", &Session::request_locate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3051 |                 .addFunction ("request_roll", &Session::request_roll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3052 |                 .addFunction ("request_stop", &Session::request_stop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3053 |                 .addFunction ("request_play_loop", &Session::request_play_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 3054 |                 .addFunction ("request_bounded_roll", &Session::request_bounded_roll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3055 |                 .addFunction ("preroll_samples", &Session::preroll_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3056 |                 .addFunction ("request_preroll_record_trim", &Session::request_preroll_record_trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3057 |                 .addFunction ("request_count_in_record", &Session::request_count_in_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3058 |                 .addFunction ("get_play_loop", &Session::get_play_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3059 |                 .addFunction ("get_xrun_count", &Session::get_xrun_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3060 |                 .addFunction ("reset_xrun_count", &Session::reset_xrun_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 3061 |                 .addFunction ("last_transport_start", &Session::last_transport_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3062 |                 .addFunction ("goto_start", &Session::goto_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 3063 |                 .addFunction ("goto_end", &Session::goto_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 3064 |                 .addFunction ("current_start_sample", &Session::current_start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3065 |                 .addFunction ("current_end_sample", &Session::current_end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3066 |                 .addFunction ("actively_recording", &Session::actively_recording)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3067 |                 .addFunction ("new_audio_track", &Session::new_audio_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3068 |                 .addFunction ("new_audio_route", &Session::new_audio_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3069 |                 .addFunction ("new_midi_track", &Session::new_midi_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3070 |                 .addFunction ("new_midi_route", &Session::new_midi_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3071 | 
      |                                                                                  
 3072 |                 .addFunction ("add_master_bus", &Session::add_master_bus)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3073 | 
      |                                                                                  
 3074 |                 .addFunction ("get_routes", &Session::get_routes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 3075 |                 .addFunction ("get_tracks", &Session::get_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 3076 |                 .addFunction ("get_stripables", (StripableList (Session::*)() const)&Session::get_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3077 |                 .addFunction ("get_routelist", &Session::get_routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3078 |                 .addFunction ("plot_process_graph", &Session::plot_process_graph)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3079 | 
      |                                                                                  
 3080 |                 .addFunction ("bundles", &Session::bundles)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 3081 | 
      |                                                                                  
 3082 |                 .addFunction ("apply_nth_mixer_scene", (bool (Session::*)(size_t))&Session::apply_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3083 |                 .addFunction ("apply_nth_mixer_scene_to", (bool (Session::*)(size_t, RouteList const&))&Session::apply_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3084 |                 .addFunction ("store_nth_mixer_scene", &Session::store_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3085 |                 .addFunction ("nth_mixer_scene_valid", &Session::nth_mixer_scene_valid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3086 |                 .addFunction ("nth_mixer_scene", &Session::nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3087 | 
      |                                                                                  
 3088 |                 .addFunction ("name", &Session::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 3089 |                 .addFunction ("path", &Session::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 3090 |                 .addFunction ("record_status", &Session::record_status)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3091 |                 .addFunction ("maybe_enable_record", &Session::maybe_enable_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3092 |                 .addFunction ("disable_record", &Session::disable_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3093 |                 .addFunction ("route_by_id", &Session::route_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 3094 |                 .addFunction ("route_by_name", &Session::route_by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3095 |                 .addFunction ("stripable_by_id", &Session::stripable_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3096 |                 .addFunction ("get_remote_nth_stripable", &Session::get_remote_nth_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3097 |                 .addFunction ("get_remote_nth_route", &Session::get_remote_nth_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3098 |                 .addFunction ("route_by_selected_count", &Session::route_by_selected_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3099 |                 .addFunction ("source_by_id", &Session::source_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3100 |                 .addFunction ("controllable_by_id", &Session::controllable_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3101 |                 .addFunction ("processor_by_id", &Session::processor_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3102 |                 .addFunction ("snap_name", &Session::snap_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 3103 |                 .addFunction ("monitor_out", &Session::monitor_out)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 3104 |                 .addFunction ("master_out", &Session::master_out)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 3105 |                 .addFunction ("master_volume", &Session::master_volume)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3106 |                 .addFunction ("surround_master", &Session::surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3107 |                 .addFunction ("add_internal_send", (void (Session::*)(std::shared_ptr<Route>, std::shared_ptr<Processor>, std::shared_ptr<Route>))&Session::add_internal_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3108 |                 .addFunction ("add_internal_sends", &Session::add_internal_sends)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3109 |                 .addFunction ("locations", &Session::locations)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 3110 |                 .addFunction ("soloing", &Session::soloing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 3111 |                 .addFunction ("listening", &Session::listening)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 3112 |                 .addFunction ("solo_isolated", &Session::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3113 |                 .addFunction ("cancel_all_solo", &Session::cancel_all_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3114 |                 .addFunction ("clear_all_solo_state", &Session::clear_all_solo_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3115 |                 .addFunction ("set_controls", &Session::set_controls)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3116 |                 .addFunction ("set_control", &Session::set_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 3117 |                 .addFunction ("set_exclusive_input_active", &Session::set_exclusive_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3118 |                 .addFunction ("begin_reversible_command", (void (Session::*)(const std::string&))&Session::begin_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3119 |                 .addFunction ("commit_reversible_command", &Session::commit_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3120 |                 .addFunction ("abort_reversible_command", &Session::abort_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3121 |                 .addFunction ("collected_undo_commands", &Session::collected_undo_commands)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3122 |                 .addFunction ("abort_empty_reversible_command", &Session::abort_empty_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3123 |                 .addFunction ("add_command", &Session::add_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 3124 |                 .addFunction ("add_stateful_diff_command", &Session::add_stateful_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3125 |                 .addFunction ("playlists", &Session::playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 3126 |                 .addFunction ("engine", (AudioEngine& (Session::*)())&Session::engine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3127 |                 .addFunction ("get_block_size", &Session::get_block_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3128 |                 .addFunction ("worst_output_latency", &Session::worst_output_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3129 |                 .addFunction ("worst_input_latency", &Session::worst_input_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3130 |                 .addFunction ("worst_route_latency", &Session::worst_route_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3131 |                 .addFunction ("io_latency", &Session::io_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 3132 |                 .addFunction ("worst_latency_preroll", &Session::worst_latency_preroll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3133 |                 .addFunction ("worst_latency_preroll_buffer_size_ceil", &Session::worst_latency_preroll_buffer_size_ceil)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3134 |                 .addFunction ("cfg", &Session::cfg)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 3135 |                 .addFunction ("route_groups", &Session::route_groups)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3136 |                 .addFunction ("new_route_group", &Session::new_route_group)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3137 |                 .addFunction ("session_range_is_free", &Session::session_range_is_free)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3138 |                 .addFunction ("set_session_range_is_free", &Session::set_session_range_is_free)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3139 |                 .addFunction ("set_session_extents", &Session::set_session_extents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3140 |                 .addFunction ("maybe_update_session_range", &Session::maybe_update_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3141 |                 .addFunction ("remove_route", &Session::remove_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3142 |                 .addFunction ("remove_routes", &Session::remove_routes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3143 |                 .addFunction ("remove_route_group", (void (Session::*)(RouteGroup*))&Session::remove_route_group)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3144 |                 .addFunction ("cut_copy_section", &Session::cut_copy_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 3145 |                 .addFunction ("vca_manager", &Session::vca_manager_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3146 |                 .addExtCFunction ("timecode_to_sample_lua", ARDOUR::LuaAPI::timecode_to_sample_lua)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3147 |                 .addExtCFunction ("sample_to_timecode_lua", ARDOUR::LuaAPI::sample_to_timecode_lua)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3148 |                 .addExtCFunction ("simple_export", &ARDOUR::LuaAPI::simple_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3149 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 3150 | 
      |                                                                                  
 3151 |                 .beginClass <RegionFactory> ("RegionFactory")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 3152 |                 .addStaticFunction ("region_by_id", &RegionFactory::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3153 |                 .addStaticFunction ("regions", &RegionFactory::regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3154 |                 .addStaticFunction ("clone_region", static_cast<std::shared_ptr<Region> (*)(std::shared_ptr<Region>, bool, bool)>(&RegionFactory::create))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3155 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 3156 | 
      |                                                                                  
 3157 |                 /* session enums (rt-safe, common) */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 3158 |                 .beginNamespace ("Session")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 3159 | 
      |                                                                                  
 3160 |                 .beginNamespace ("RecordState")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                  
 3161 |                 .addConst ("Disabled", ARDOUR::Session::RecordState(Session::Disabled))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3162 |                 .addConst ("Enabled", ARDOUR::Session::RecordState(Session::Enabled))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3163 |                 .addConst ("Recording", ARDOUR::Session::RecordState(Session::Recording))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3164 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                                 
 3165 | 
      |                                                                                  
 3166 |                 .endNamespace () // end Session enums
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 3167 | 
      |                                                                                  
 3168 |                 /* ardour enums (rt-safe, common) */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 3169 |                 .beginNamespace ("LocationFlags")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 3170 |                 .addConst ("IsMark", ARDOUR::Location::Flags(Location::IsMark))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 3171 |                 .addConst ("IsAutoPunch", ARDOUR::Location::Flags(Location::IsAutoPunch))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3172 |                 .addConst ("IsAutoLoop", ARDOUR::Location::Flags(Location::IsAutoLoop))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3173 |                 .addConst ("IsHidden", ARDOUR::Location::Flags(Location::IsHidden))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3174 |                 .addConst ("IsCDMarker", ARDOUR::Location::Flags(Location::IsCDMarker))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3175 |                 .addConst ("IsCueMarker", ARDOUR::Location::Flags(Location::IsCueMarker))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3176 |                 .addConst ("IsSection", ARDOUR::Location::Flags(Location::IsSection))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3177 |                 .addConst ("IsRangeMarker", ARDOUR::Location::Flags(Location::IsRangeMarker))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3178 |                 .addConst ("IsSessionRange", ARDOUR::Location::Flags(Location::IsSessionRange))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3179 |                 .addConst ("IsSkip", ARDOUR::Location::Flags(Location::IsSkip))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 3180 |                 .addConst ("IsSkipping", ARDOUR::Location::Flags(Location::IsSkipping))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3181 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                                 
 3182 | 
      |                                                                                  
 3183 |                 .beginNamespace ("LuaAPI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                       
 3184 |                 .addFunction ("nil_proc", ARDOUR::LuaAPI::nil_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3185 |                 .addFunction ("new_luaproc", ARDOUR::LuaAPI::new_luaproc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3186 |                 .addFunction ("new_send", ARDOUR::LuaAPI::new_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 3187 |                 .addFunction ("new_luaproc_with_time_domain", ARDOUR::LuaAPI::new_luaproc_with_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3188 |                 .addFunction ("list_plugins", ARDOUR::LuaAPI::list_plugins)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3189 |                 .addFunction ("dump_untagged_plugins", ARDOUR::LuaAPI::dump_untagged_plugins)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3190 |                 .addFunction ("new_plugin_info", ARDOUR::LuaAPI::new_plugin_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3191 |                 .addFunction ("new_plugin", ARDOUR::LuaAPI::new_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3192 |                 .addFunction ("new_plugin_with_time_domain", ARDOUR::LuaAPI::new_plugin_with_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3193 |                 .addFunction ("set_processor_param", ARDOUR::LuaAPI::set_processor_param)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3194 |                 .addFunction ("set_plugin_insert_param", ARDOUR::LuaAPI::set_plugin_insert_param)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3195 |                 .addFunction ("set_plugin_insert_property", ARDOUR::LuaAPI::set_plugin_insert_property)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3196 |                 .addCFunction ("get_plugin_insert_property", ARDOUR::LuaAPI::get_plugin_insert_property)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3197 |                 .addFunction ("reset_processor_to_default", ARDOUR::LuaAPI::reset_processor_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3198 |                 .addFunction ("set_automation_data", ARDOUR::LuaAPI::set_automation_data)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3199 |                 .addRefFunction ("get_processor_param", ARDOUR::LuaAPI::get_processor_param)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3200 |                 .addRefFunction ("get_plugin_insert_param", ARDOUR::LuaAPI::get_plugin_insert_param)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3201 |                 .addCFunction ("desc_scale_points", ARDOUR::LuaAPI::desc_scale_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3202 |                 .addCFunction ("plugin_automation", ARDOUR::LuaAPI::plugin_automation)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3203 |                 .addCFunction ("hsla_to_rgba", ARDOUR::LuaAPI::hsla_to_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3204 |                 .addCFunction ("color_to_rgba", ARDOUR::LuaAPI::color_to_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 3205 |                 .addFunction ("ascii_dtostr", ARDOUR::LuaAPI::ascii_dtostr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3206 |                 .addFunction ("usleep", Glib::usleep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 3207 |                 .addFunction ("file_test", Glib::file_test)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 3208 |                 .addFunction ("file_get_contents", Glib::file_get_contents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3209 |                 .addFunction ("path_get_basename", Glib::path_get_basename)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3210 |                 .addFunction ("monotonic_time", ::g_get_monotonic_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3211 |                 .addCFunction ("build_filename", ARDOUR::LuaAPI::build_filename)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3212 |                 .addFunction ("new_noteptr", ARDOUR::LuaAPI::new_noteptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3213 |                 .addFunction ("note_list", ARDOUR::LuaAPI::note_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3214 |                 .addFunction ("sysex_list", ARDOUR::LuaAPI::sysex_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3215 |                 .addFunction ("patch_change_list", ARDOUR::LuaAPI::patch_change_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3216 |                 .addCFunction ("sample_to_timecode", ARDOUR::LuaAPI::sample_to_timecode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3217 |                 .addCFunction ("timecode_to_sample", ARDOUR::LuaAPI::timecode_to_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3218 |                 .addFunction ("wait_for_process_callback", ARDOUR::LuaAPI::wait_for_process_callback)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3219 |                 .addFunction ("segfault", ARDOUR::LuaAPI::segfault)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 3220 |                 .addFunction ("env", ARDOUR::LuaAPI::env)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 3221 | 
      |                                                                                  
 3222 |                 .beginNamespace ("FileTest")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                     
 3223 |                 .addConst ("IsRegular", Glib::FILE_TEST_IS_REGULAR)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 3224 |                 .addConst ("IsSymlink", Glib::FILE_TEST_IS_SYMLINK)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 3225 |                 .addConst ("IsDir", Glib::FILE_TEST_IS_DIR)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 3226 |                 .addConst ("IsExecutable", Glib::FILE_TEST_IS_EXECUTABLE)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3227 |                 .addConst ("Exists", Glib::FILE_TEST_EXISTS)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 3228 |                 .endNamespace () // end LuaAPI
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                   
 3229 | 
      |                                                                                  
 3230 |                 .beginClass <ARDOUR::LuaAPI::Vamp> ("Vamp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 3231 |                 .addConstructor <void (*) (const std::string&, float)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3232 |                 .addStaticFunction ("list_plugins", &ARDOUR::LuaAPI::Vamp::list_plugins)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3233 |                 .addFunction ("plugin", &ARDOUR::LuaAPI::Vamp::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 3234 |                 .addFunction ("analyze", &ARDOUR::LuaAPI::Vamp::analyze)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3235 |                 .addFunction ("reset", &ARDOUR::LuaAPI::Vamp::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 3236 |                 .addFunction ("initialize", &ARDOUR::LuaAPI::Vamp::initialize)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 3237 |                 .addFunction ("process", &ARDOUR::LuaAPI::Vamp::process)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3238 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 3239 | 
      |                                                                                  
 3240 |                 .beginClass <ARDOUR::LuaAPI::Rubberband> ("Rubberband")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3241 |                 .addConstructor <void (*) (std::shared_ptr<AudioRegion>, bool)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::LuaAPI::Rubberband*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::DSP::LowPass]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::DSP::LowPass]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::DSP::LowPass; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<double, luabridge::TypeList<float, void> >; T = ARDOUR::DSP::LowPass; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(double, float); T = ARDOUR::DSP::LowPass]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3274:46:   required from here
 3254 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 3255 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 3256 |                 .beginNamespace ("DSP")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~                     
 3257 |                 .addFunction ("compute_peak", ARDOUR::compute_peak)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3258 |                 .addFunction ("find_peaks", ARDOUR::find_peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3259 |                 .addFunction ("apply_gain_to_buffer", ARDOUR::apply_gain_to_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3260 |                 .addFunction ("mix_buffers_no_gain", ARDOUR::mix_buffers_no_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3261 |                 .addFunction ("mix_buffers_with_gain", ARDOUR::mix_buffers_with_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3262 |                 .addFunction ("copy_vector", ARDOUR::copy_vector)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3263 |                 .addFunction ("dB_to_coefficient", &dB_to_coefficient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3264 |                 .addFunction ("fast_coefficient_to_dB", &fast_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3265 |                 .addFunction ("accurate_coefficient_to_dB", &accurate_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3266 |                 .addFunction ("memset", &DSP::memset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 3267 |                 .addFunction ("mmult", &DSP::mmult)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3268 |                 .addFunction ("log_meter", &DSP::log_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3269 |                 .addFunction ("log_meter_coeff", &DSP::log_meter_coeff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3270 |                 .addFunction ("process_map", &DSP::process_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3271 |                 .addRefFunction ("peaks", &DSP::peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3272 | 
      |                                                             
 3273 |                 .beginClass <DSP::LowPass> ("LowPass")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3274 |                 .addConstructor <void (*) (double, float)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::DSP::LowPass*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::DSP::Biquad]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::DSP::Biquad]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::DSP::Biquad; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<double, void>; T = ARDOUR::DSP::Biquad; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(double); T = ARDOUR::DSP::Biquad]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3281:39:   required from here
 3254 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3255 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~           
 3256 |                 .beginNamespace ("DSP")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~              
 3257 |                 .addFunction ("compute_peak", ARDOUR::compute_peak)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3258 |                 .addFunction ("find_peaks", ARDOUR::find_peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3259 |                 .addFunction ("apply_gain_to_buffer", ARDOUR::apply_gain_to_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3260 |                 .addFunction ("mix_buffers_no_gain", ARDOUR::mix_buffers_no_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3261 |                 .addFunction ("mix_buffers_with_gain", ARDOUR::mix_buffers_with_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3262 |                 .addFunction ("copy_vector", ARDOUR::copy_vector)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3263 |                 .addFunction ("dB_to_coefficient", &dB_to_coefficient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3264 |                 .addFunction ("fast_coefficient_to_dB", &fast_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3265 |                 .addFunction ("accurate_coefficient_to_dB", &accurate_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3266 |                 .addFunction ("memset", &DSP::memset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3267 |                 .addFunction ("mmult", &DSP::mmult)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 3268 |                 .addFunction ("log_meter", &DSP::log_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3269 |                 .addFunction ("log_meter_coeff", &DSP::log_meter_coeff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3270 |                 .addFunction ("process_map", &DSP::process_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3271 |                 .addRefFunction ("peaks", &DSP::peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3272 | 
      |                                                      
 3273 |                 .beginClass <DSP::LowPass> ("LowPass")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3274 |                 .addConstructor <void (*) (double, float)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3275 |                 .addFunction ("proc", &DSP::LowPass::proc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3276 |                 .addFunction ("ctrl", &DSP::LowPass::ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3277 |                 .addFunction ("set_cutoff", &DSP::LowPass::set_cutoff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3278 |                 .addFunction ("reset", &DSP::LowPass::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3279 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 3280 |                 .beginClass <DSP::Biquad> ("Biquad")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3281 |                 .addConstructor <void (*) (double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::DSP::Biquad*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::DSP::FFTSpectrum]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::DSP::FFTSpectrum]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::DSP::FFTSpectrum; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<unsigned int, luabridge::TypeList<double, void> >; T = ARDOUR::DSP::FFTSpectrum; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(unsigned int, double); T = ARDOUR::DSP::FFTSpectrum]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3290:49:   required from here
 3254 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 3255 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 3256 |                 .beginNamespace ("DSP")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~                        
 3257 |                 .addFunction ("compute_peak", ARDOUR::compute_peak)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3258 |                 .addFunction ("find_peaks", ARDOUR::find_peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3259 |                 .addFunction ("apply_gain_to_buffer", ARDOUR::apply_gain_to_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3260 |                 .addFunction ("mix_buffers_no_gain", ARDOUR::mix_buffers_no_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3261 |                 .addFunction ("mix_buffers_with_gain", ARDOUR::mix_buffers_with_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3262 |                 .addFunction ("copy_vector", ARDOUR::copy_vector)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3263 |                 .addFunction ("dB_to_coefficient", &dB_to_coefficient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3264 |                 .addFunction ("fast_coefficient_to_dB", &fast_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3265 |                 .addFunction ("accurate_coefficient_to_dB", &accurate_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3266 |                 .addFunction ("memset", &DSP::memset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3267 |                 .addFunction ("mmult", &DSP::mmult)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3268 |                 .addFunction ("log_meter", &DSP::log_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 3269 |                 .addFunction ("log_meter_coeff", &DSP::log_meter_coeff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3270 |                 .addFunction ("process_map", &DSP::process_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3271 |                 .addRefFunction ("peaks", &DSP::peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3272 | 
      |                                                                
 3273 |                 .beginClass <DSP::LowPass> ("LowPass")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3274 |                 .addConstructor <void (*) (double, float)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 3275 |                 .addFunction ("proc", &DSP::LowPass::proc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3276 |                 .addFunction ("ctrl", &DSP::LowPass::ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3277 |                 .addFunction ("set_cutoff", &DSP::LowPass::set_cutoff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3278 |                 .addFunction ("reset", &DSP::LowPass::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 3279 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 3280 |                 .beginClass <DSP::Biquad> ("Biquad")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 3281 |                 .addConstructor <void (*) (double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3282 |                 .addFunction ("run", &DSP::Biquad::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3283 |                 .addFunction ("compute", &DSP::Biquad::compute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3284 |                 .addFunction ("configure", (void (DSP::Biquad::*) (DSP::Biquad const&))&DSP::Biquad::configure)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3285 |                 .addFunction ("set_coefficients", (void (DSP::Biquad::*) (double, double, double, double, double))&DSP::Biquad::configure)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3286 |                 .addFunction ("reset", &DSP::Biquad::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 3287 |                 .addFunction ("dB_at_freq", &DSP::Biquad::dB_at_freq)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3288 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 3289 |                 .beginClass <DSP::FFTSpectrum> ("FFTSpectrum")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3290 |                 .addConstructor <void (*) (uint32_t, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::DSP::FFTSpectrum*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::LTCReader]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::LTCReader]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::LTCReader; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<int, luabridge::TypeList<LTC_TV_STANDARD, void> >; T = ARDOUR::LTCReader; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(int, LTC_TV_STANDARD); T = ARDOUR::LTCReader]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3303:53:   required from here
 3254 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 3255 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 3256 |                 .beginNamespace ("DSP")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~                            
 3257 |                 .addFunction ("compute_peak", ARDOUR::compute_peak)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3258 |                 .addFunction ("find_peaks", ARDOUR::find_peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 3259 |                 .addFunction ("apply_gain_to_buffer", ARDOUR::apply_gain_to_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3260 |                 .addFunction ("mix_buffers_no_gain", ARDOUR::mix_buffers_no_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3261 |                 .addFunction ("mix_buffers_with_gain", ARDOUR::mix_buffers_with_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3262 |                 .addFunction ("copy_vector", ARDOUR::copy_vector)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 3263 |                 .addFunction ("dB_to_coefficient", &dB_to_coefficient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3264 |                 .addFunction ("fast_coefficient_to_dB", &fast_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3265 |                 .addFunction ("accurate_coefficient_to_dB", &accurate_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3266 |                 .addFunction ("memset", &DSP::memset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 3267 |                 .addFunction ("mmult", &DSP::mmult)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 3268 |                 .addFunction ("log_meter", &DSP::log_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3269 |                 .addFunction ("log_meter_coeff", &DSP::log_meter_coeff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3270 |                 .addFunction ("process_map", &DSP::process_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 3271 |                 .addRefFunction ("peaks", &DSP::peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 3272 | 
      |                                                                    
 3273 |                 .beginClass <DSP::LowPass> ("LowPass")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 3274 |                 .addConstructor <void (*) (double, float)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3275 |                 .addFunction ("proc", &DSP::LowPass::proc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3276 |                 .addFunction ("ctrl", &DSP::LowPass::ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3277 |                 .addFunction ("set_cutoff", &DSP::LowPass::set_cutoff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3278 |                 .addFunction ("reset", &DSP::LowPass::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 3279 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 3280 |                 .beginClass <DSP::Biquad> ("Biquad")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 3281 |                 .addConstructor <void (*) (double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 3282 |                 .addFunction ("run", &DSP::Biquad::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3283 |                 .addFunction ("compute", &DSP::Biquad::compute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 3284 |                 .addFunction ("configure", (void (DSP::Biquad::*) (DSP::Biquad const&))&DSP::Biquad::configure)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3285 |                 .addFunction ("set_coefficients", (void (DSP::Biquad::*) (double, double, double, double, double))&DSP::Biquad::configure)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3286 |                 .addFunction ("reset", &DSP::Biquad::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3287 |                 .addFunction ("dB_at_freq", &DSP::Biquad::dB_at_freq)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3288 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 3289 |                 .beginClass <DSP::FFTSpectrum> ("FFTSpectrum")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3290 |                 .addConstructor <void (*) (uint32_t, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 3291 |                 .addFunction ("set_data_hann", &DSP::FFTSpectrum::set_data_hann)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3292 |                 .addFunction ("execute", &DSP::FFTSpectrum::execute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3293 |                 .addFunction ("power_at_bin", &DSP::FFTSpectrum::power_at_bin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3294 |                 .addFunction ("freq_at_bin", &DSP::FFTSpectrum::freq_at_bin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 3296 |                 .beginClass <DSP::Generator> ("Generator")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3297 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                             
 3298 |                 .addFunction ("run", &DSP::Generator::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3299 |                 .addFunction ("set_type", &DSP::Generator::set_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3300 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 3301 | 
      |                                                                    
 3302 |                 .beginClass <ARDOUR::LTCReader> ("LTCReader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3303 |                 .addConstructor <void (*) (int, LTC_TV_STANDARD)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::LTCReader*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::DSP::Convolution]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::DSP::Convolution]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::DSP::Convolution; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<ARDOUR::Session&, luabridge::TypeList<unsigned int, luabridge::TypeList<unsigned int, void> > >; T = ARDOUR::DSP::Convolution; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(ARDOUR::Session&, unsigned int, unsigned int); T = ARDOUR::DSP::Convolution]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3309:61:   required from here
 3254 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                  
 3255 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                 
 3256 |                 .beginNamespace ("DSP")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~                                    
 3257 |                 .addFunction ("compute_peak", ARDOUR::compute_peak)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 3258 |                 .addFunction ("find_peaks", ARDOUR::find_peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3259 |                 .addFunction ("apply_gain_to_buffer", ARDOUR::apply_gain_to_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3260 |                 .addFunction ("mix_buffers_no_gain", ARDOUR::mix_buffers_no_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3261 |                 .addFunction ("mix_buffers_with_gain", ARDOUR::mix_buffers_with_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3262 |                 .addFunction ("copy_vector", ARDOUR::copy_vector)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3263 |                 .addFunction ("dB_to_coefficient", &dB_to_coefficient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3264 |                 .addFunction ("fast_coefficient_to_dB", &fast_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3265 |                 .addFunction ("accurate_coefficient_to_dB", &accurate_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3266 |                 .addFunction ("memset", &DSP::memset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 3267 |                 .addFunction ("mmult", &DSP::mmult)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 3268 |                 .addFunction ("log_meter", &DSP::log_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 3269 |                 .addFunction ("log_meter_coeff", &DSP::log_meter_coeff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 3270 |                 .addFunction ("process_map", &DSP::process_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3271 |                 .addRefFunction ("peaks", &DSP::peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 3272 | 
      |                                                                            
 3273 |                 .beginClass <DSP::LowPass> ("LowPass")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 3274 |                 .addConstructor <void (*) (double, float)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 3275 |                 .addFunction ("proc", &DSP::LowPass::proc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 3276 |                 .addFunction ("ctrl", &DSP::LowPass::ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 3277 |                 .addFunction ("set_cutoff", &DSP::LowPass::set_cutoff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 3278 |                 .addFunction ("reset", &DSP::LowPass::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 3279 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                               
 3280 |                 .beginClass <DSP::Biquad> ("Biquad")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 3281 |                 .addConstructor <void (*) (double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 3282 |                 .addFunction ("run", &DSP::Biquad::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 3283 |                 .addFunction ("compute", &DSP::Biquad::compute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 3284 |                 .addFunction ("configure", (void (DSP::Biquad::*) (DSP::Biquad const&))&DSP::Biquad::configure)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3285 |                 .addFunction ("set_coefficients", (void (DSP::Biquad::*) (double, double, double, double, double))&DSP::Biquad::configure)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3286 |                 .addFunction ("reset", &DSP::Biquad::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 3287 |                 .addFunction ("dB_at_freq", &DSP::Biquad::dB_at_freq)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3288 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                               
 3289 |                 .beginClass <DSP::FFTSpectrum> ("FFTSpectrum")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 3290 |                 .addConstructor <void (*) (uint32_t, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 3291 |                 .addFunction ("set_data_hann", &DSP::FFTSpectrum::set_data_hann)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3292 |                 .addFunction ("execute", &DSP::FFTSpectrum::execute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 3293 |                 .addFunction ("power_at_bin", &DSP::FFTSpectrum::power_at_bin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3294 |                 .addFunction ("freq_at_bin", &DSP::FFTSpectrum::freq_at_bin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                               
 3296 |                 .beginClass <DSP::Generator> ("Generator")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 3297 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                     
 3298 |                 .addFunction ("run", &DSP::Generator::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 3299 |                 .addFunction ("set_type", &DSP::Generator::set_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 3300 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                               
 3301 | 
      |                                                                            
 3302 |                 .beginClass <ARDOUR::LTCReader> ("LTCReader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 3303 |                 .addConstructor <void (*) (int, LTC_TV_STANDARD)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 3304 |                 .addFunction ("write", &ARDOUR::LTCReader::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3305 |                 .addRefFunction ("read", &ARDOUR::LTCReader::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 3306 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                               
 3307 | 
      |                                                                            
 3308 |                 .beginClass <DSP::Convolution> ("Convolution")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 3309 |                 .addConstructor <void (*) (Session&, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::DSP::Convolution*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::DSP::Convolver]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::DSP::Convolver]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::DSP::Convolver; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<ARDOUR::Session&, luabridge::TypeList<const std::__cxx11::basic_string<char>&, luabridge::TypeList<ARDOUR::DSP::Convolver::IRChannelConfig, luabridge::TypeList<ARDOUR::DSP::Convolver::IRSettings, void> > > >; T = ARDOUR::DSP::Convolver; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(ARDOUR::Session&, const std::__cxx11::basic_string<char>&, ARDOUR::DSP::Convolver::IRChannelConfig, ARDOUR::DSP::Convolver::IRSettings); T = ARDOUR::DSP::Convolver]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3333:122:   required from here
 3254 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                               
 3255 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                              
 3256 |                 .beginNamespace ("DSP")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~                                                                                                 
 3257 |                 .addFunction ("compute_peak", ARDOUR::compute_peak)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                     
 3258 |                 .addFunction ("find_peaks", ARDOUR::find_peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                         
 3259 |                 .addFunction ("apply_gain_to_buffer", ARDOUR::apply_gain_to_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                     
 3260 |                 .addFunction ("mix_buffers_no_gain", ARDOUR::mix_buffers_no_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                       
 3261 |                 .addFunction ("mix_buffers_with_gain", ARDOUR::mix_buffers_with_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                   
 3262 |                 .addFunction ("copy_vector", ARDOUR::copy_vector)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                       
 3263 |                 .addFunction ("dB_to_coefficient", &dB_to_coefficient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                  
 3264 |                 .addFunction ("fast_coefficient_to_dB", &fast_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                        
 3265 |                 .addFunction ("accurate_coefficient_to_dB", &accurate_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                
 3266 |                 .addFunction ("memset", &DSP::memset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                   
 3267 |                 .addFunction ("mmult", &DSP::mmult)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                     
 3268 |                 .addFunction ("log_meter", &DSP::log_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                             
 3269 |                 .addFunction ("log_meter_coeff", &DSP::log_meter_coeff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                 
 3270 |                 .addFunction ("process_map", &DSP::process_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                         
 3271 |                 .addRefFunction ("peaks", &DSP::peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                  
 3272 | 
      |                                                                                                                                         
 3273 |                 .beginClass <DSP::LowPass> ("LowPass")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                  
 3274 |                 .addConstructor <void (*) (double, float)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                           
 3275 |                 .addFunction ("proc", &DSP::LowPass::proc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                              
 3276 |                 .addFunction ("ctrl", &DSP::LowPass::ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                              
 3277 |                 .addFunction ("set_cutoff", &DSP::LowPass::set_cutoff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                  
 3278 |                 .addFunction ("reset", &DSP::LowPass::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                            
 3279 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                                                                            
 3280 |                 .beginClass <DSP::Biquad> ("Biquad")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                    
 3281 |                 .addConstructor <void (*) (double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                  
 3282 |                 .addFunction ("run", &DSP::Biquad::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                 
 3283 |                 .addFunction ("compute", &DSP::Biquad::compute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                         
 3284 |                 .addFunction ("configure", (void (DSP::Biquad::*) (DSP::Biquad const&))&DSP::Biquad::configure)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 3285 |                 .addFunction ("set_coefficients", (void (DSP::Biquad::*) (double, double, double, double, double))&DSP::Biquad::configure)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3286 |                 .addFunction ("reset", &DSP::Biquad::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                             
 3287 |                 .addFunction ("dB_at_freq", &DSP::Biquad::dB_at_freq)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                   
 3288 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                                                                            
 3289 |                 .beginClass <DSP::FFTSpectrum> ("FFTSpectrum")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                          
 3290 |                 .addConstructor <void (*) (uint32_t, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                        
 3291 |                 .addFunction ("set_data_hann", &DSP::FFTSpectrum::set_data_hann)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                        
 3292 |                 .addFunction ("execute", &DSP::FFTSpectrum::execute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                    
 3293 |                 .addFunction ("power_at_bin", &DSP::FFTSpectrum::power_at_bin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                          
 3294 |                 .addFunction ("freq_at_bin", &DSP::FFTSpectrum::freq_at_bin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                            
 3295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                                                                            
 3296 |                 .beginClass <DSP::Generator> ("Generator")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                              
 3297 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                                                                                  
 3298 |                 .addFunction ("run", &DSP::Generator::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                              
 3299 |                 .addFunction ("set_type", &DSP::Generator::set_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                    
 3300 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                                                                            
 3301 | 
      |                                                                                                                                         
 3302 |                 .beginClass <ARDOUR::LTCReader> ("LTCReader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                           
 3303 |                 .addConstructor <void (*) (int, LTC_TV_STANDARD)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                    
 3304 |                 .addFunction ("write", &ARDOUR::LTCReader::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                       
 3305 |                 .addRefFunction ("read", &ARDOUR::LTCReader::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                      
 3306 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                                                                            
 3307 | 
      |                                                                                                                                         
 3308 |                 .beginClass <DSP::Convolution> ("Convolution")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                          
 3309 |                 .addConstructor <void (*) (Session&, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                            
 3310 |                 .addFunction ("add_impdata", &ARDOUR::DSP::Convolution::add_impdata)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                    
 3311 |                 .addFunction ("clear_impdata", &ARDOUR::DSP::Convolution::clear_impdata)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                
 3312 |                 .addFunction ("run", &ARDOUR::DSP::Convolution::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                    
 3313 |                 .addFunction ("run_mono_buffered", &ARDOUR::DSP::Convolution::run_mono_buffered)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                        
 3314 |                 .addFunction ("run_mono_no_latency", &ARDOUR::DSP::Convolution::run_mono_no_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                    
 3315 |                 .addFunction ("restart", &ARDOUR::DSP::Convolution::restart)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                            
 3316 |                 .addFunction ("ready", &ARDOUR::DSP::Convolution::ready)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                
 3317 |                 .addFunction ("latency", &ARDOUR::DSP::Convolution::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                            
 3318 |                 .addFunction ("n_inputs", &ARDOUR::DSP::Convolution::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                          
 3319 |                 .addFunction ("n_outputs", &ARDOUR::DSP::Convolution::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                        
 3320 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                                                                            
 3321 | 
      |                                                                                                                                         
 3322 |                 .beginClass <DSP::Convolver::IRSettings> ("IRSettings")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                 
 3323 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                                                                                  
 3324 |                 .addData ("gain", &DSP::Convolver::IRSettings::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                    
 3325 |                 .addData ("pre_delay", &DSP::Convolver::IRSettings::pre_delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                          
 3326 |                 .addFunction ("get_channel_gain", &ARDOUR::DSP::Convolver::IRSettings::get_channel_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 3327 |                 .addFunction ("set_channel_gain", &ARDOUR::DSP::Convolver::IRSettings::set_channel_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 3328 |                 .addFunction ("get_channel_delay", &ARDOUR::DSP::Convolver::IRSettings::get_channel_delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 3329 |                 .addFunction ("set_channel_delay", &ARDOUR::DSP::Convolver::IRSettings::set_channel_delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 3330 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                                                                            
 3331 | 
      |                                                                                                                                         
 3332 |                 .deriveClass <DSP::Convolver, DSP::Convolution> ("Convolver")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                           
 3333 |                 .addConstructor <void (*) (Session&, std::string const&, DSP::Convolver::IRChannelConfig, DSP::Convolver::IRSettings)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::DSP::Convolver*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::DSP::DspShm]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::DSP::DspShm]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::DSP::DspShm; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<long unsigned int, void>; T = ARDOUR::DSP::DspShm; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(long unsigned int); T = ARDOUR::DSP::DspShm]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3375:38:   required from here
 3254 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 3255 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~          
 3256 |                 .beginNamespace ("DSP")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~             
 3257 |                 .addFunction ("compute_peak", ARDOUR::compute_peak)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3258 |                 .addFunction ("find_peaks", ARDOUR::find_peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3259 |                 .addFunction ("apply_gain_to_buffer", ARDOUR::apply_gain_to_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3260 |                 .addFunction ("mix_buffers_no_gain", ARDOUR::mix_buffers_no_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3261 |                 .addFunction ("mix_buffers_with_gain", ARDOUR::mix_buffers_with_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3262 |                 .addFunction ("copy_vector", ARDOUR::copy_vector)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3263 |                 .addFunction ("dB_to_coefficient", &dB_to_coefficient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3264 |                 .addFunction ("fast_coefficient_to_dB", &fast_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3265 |                 .addFunction ("accurate_coefficient_to_dB", &accurate_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3266 |                 .addFunction ("memset", &DSP::memset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3267 |                 .addFunction ("mmult", &DSP::mmult)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3268 |                 .addFunction ("log_meter", &DSP::log_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3269 |                 .addFunction ("log_meter_coeff", &DSP::log_meter_coeff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3270 |                 .addFunction ("process_map", &DSP::process_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3271 |                 .addRefFunction ("peaks", &DSP::peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3272 | 
      |                                                     
 3273 |                 .beginClass <DSP::LowPass> ("LowPass")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3274 |                 .addConstructor <void (*) (double, float)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3275 |                 .addFunction ("proc", &DSP::LowPass::proc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3276 |                 .addFunction ("ctrl", &DSP::LowPass::ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3277 |                 .addFunction ("set_cutoff", &DSP::LowPass::set_cutoff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3278 |                 .addFunction ("reset", &DSP::LowPass::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3279 |                 .endClass ()
      |                 ~~~~~~~~~~~~                        
 3280 |                 .beginClass <DSP::Biquad> ("Biquad")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3281 |                 .addConstructor <void (*) (double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3282 |                 .addFunction ("run", &DSP::Biquad::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3283 |                 .addFunction ("compute", &DSP::Biquad::compute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3284 |                 .addFunction ("configure", (void (DSP::Biquad::*) (DSP::Biquad const&))&DSP::Biquad::configure)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3285 |                 .addFunction ("set_coefficients", (void (DSP::Biquad::*) (double, double, double, double, double))&DSP::Biquad::configure)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3286 |                 .addFunction ("reset", &DSP::Biquad::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3287 |                 .addFunction ("dB_at_freq", &DSP::Biquad::dB_at_freq)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3288 |                 .endClass ()
      |                 ~~~~~~~~~~~~                        
 3289 |                 .beginClass <DSP::FFTSpectrum> ("FFTSpectrum")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3290 |                 .addConstructor <void (*) (uint32_t, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3291 |                 .addFunction ("set_data_hann", &DSP::FFTSpectrum::set_data_hann)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3292 |                 .addFunction ("execute", &DSP::FFTSpectrum::execute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3293 |                 .addFunction ("power_at_bin", &DSP::FFTSpectrum::power_at_bin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3294 |                 .addFunction ("freq_at_bin", &DSP::FFTSpectrum::freq_at_bin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                        
 3296 |                 .beginClass <DSP::Generator> ("Generator")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3297 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~              
 3298 |                 .addFunction ("run", &DSP::Generator::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3299 |                 .addFunction ("set_type", &DSP::Generator::set_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3300 |                 .endClass ()
      |                 ~~~~~~~~~~~~                        
 3301 | 
      |                                                     
 3302 |                 .beginClass <ARDOUR::LTCReader> ("LTCReader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3303 |                 .addConstructor <void (*) (int, LTC_TV_STANDARD)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3304 |                 .addFunction ("write", &ARDOUR::LTCReader::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3305 |                 .addRefFunction ("read", &ARDOUR::LTCReader::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3306 |                 .endClass ()
      |                 ~~~~~~~~~~~~                        
 3307 | 
      |                                                     
 3308 |                 .beginClass <DSP::Convolution> ("Convolution")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3309 |                 .addConstructor <void (*) (Session&, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3310 |                 .addFunction ("add_impdata", &ARDOUR::DSP::Convolution::add_impdata)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3311 |                 .addFunction ("clear_impdata", &ARDOUR::DSP::Convolution::clear_impdata)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3312 |                 .addFunction ("run", &ARDOUR::DSP::Convolution::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3313 |                 .addFunction ("run_mono_buffered", &ARDOUR::DSP::Convolution::run_mono_buffered)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3314 |                 .addFunction ("run_mono_no_latency", &ARDOUR::DSP::Convolution::run_mono_no_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3315 |                 .addFunction ("restart", &ARDOUR::DSP::Convolution::restart)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3316 |                 .addFunction ("ready", &ARDOUR::DSP::Convolution::ready)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3317 |                 .addFunction ("latency", &ARDOUR::DSP::Convolution::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3318 |                 .addFunction ("n_inputs", &ARDOUR::DSP::Convolution::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3319 |                 .addFunction ("n_outputs", &ARDOUR::DSP::Convolution::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3320 |                 .endClass ()
      |                 ~~~~~~~~~~~~                        
 3321 | 
      |                                                     
 3322 |                 .beginClass <DSP::Convolver::IRSettings> ("IRSettings")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3323 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~              
 3324 |                 .addData ("gain", &DSP::Convolver::IRSettings::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3325 |                 .addData ("pre_delay", &DSP::Convolver::IRSettings::pre_delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3326 |                 .addFunction ("get_channel_gain", &ARDOUR::DSP::Convolver::IRSettings::get_channel_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3327 |                 .addFunction ("set_channel_gain", &ARDOUR::DSP::Convolver::IRSettings::set_channel_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3328 |                 .addFunction ("get_channel_delay", &ARDOUR::DSP::Convolver::IRSettings::get_channel_delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3329 |                 .addFunction ("set_channel_delay", &ARDOUR::DSP::Convolver::IRSettings::set_channel_delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3330 |                 .endClass ()
      |                 ~~~~~~~~~~~~                        
 3331 | 
      |                                                     
 3332 |                 .deriveClass <DSP::Convolver, DSP::Convolution> ("Convolver")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3333 |                 .addConstructor <void (*) (Session&, std::string const&, DSP::Convolver::IRChannelConfig, DSP::Convolver::IRSettings)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3334 |                 .addFunction ("run_stereo_buffered", &ARDOUR::DSP::Convolver::run_stereo_buffered)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3335 |                 .addFunction ("run_stereo_no_latency", &ARDOUR::DSP::Convolver::run_stereo_no_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3336 |                 .endClass ()
      |                 ~~~~~~~~~~~~                        
 3337 | 
      |                                                     
 3338 |                 /* DSP enums */
      |                 ~~~~~~~~~~~~~~~                     
 3339 |                 .beginNamespace ("BiquadType")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 3340 |                 .addConst ("LowPass", ARDOUR::DSP::Biquad::LowPass)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3341 |                 .addConst ("HighPass", ARDOUR::DSP::Biquad::HighPass)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3342 |                 .addConst ("BandPassSkirt", ARDOUR::DSP::Biquad::BandPassSkirt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3343 |                 .addConst ("BandPass0dB", ARDOUR::DSP::Biquad::BandPass0dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3344 |                 .addConst ("Notch", ARDOUR::DSP::Biquad::Notch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3345 |                 .addConst ("AllPass", ARDOUR::DSP::Biquad::AllPass)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3346 |                 .addConst ("Peaking", ARDOUR::DSP::Biquad::Peaking)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3347 |                 .addConst ("LowShelf", ARDOUR::DSP::Biquad::LowShelf)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3348 |                 .addConst ("HighShelf", ARDOUR::DSP::Biquad::HighShelf)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3349 |                 .addConst ("MatchedLowPass", ARDOUR::DSP::Biquad::MatchedLowPass)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3350 |                 .addConst ("MatchedHighPass", ARDOUR::DSP::Biquad::MatchedHighPass)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3351 |                 .addConst ("MatchedBandPass0dB", ARDOUR::DSP::Biquad::MatchedBandPass0dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3352 |                 .addConst ("MatchedPeaking", ARDOUR::DSP::Biquad::MatchedPeaking)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3353 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                    
 3354 | 
      |                                                     
 3355 |                 .beginNamespace ("NoiseType")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 3356 |                 .addConst ("UniformWhiteNoise", ARDOUR::DSP::Generator::UniformWhiteNoise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3357 |                 .addConst ("GaussianWhiteNoise", ARDOUR::DSP::Generator::GaussianWhiteNoise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3358 |                 .addConst ("PinkNoise", ARDOUR::DSP::Generator::PinkNoise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3359 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                    
 3360 | 
      |                                                     
 3361 |                 .beginNamespace ("LTC_TV_STANDARD")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3362 |                 .addConst ("LTC_TV_525_60", LTC_TV_525_60)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3363 |                 .addConst ("LTC_TV_625_50", LTC_TV_625_50)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3364 |                 .addConst ("LTC_TV_1125_60", LTC_TV_1125_60)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3365 |                 .addConst ("LTC_TV_FILM_24", LTC_TV_FILM_24)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3366 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                    
 3367 | 
      |                                                     
 3368 |                 .beginNamespace ("IRChannelConfig")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3369 |                 .addConst ("Mono", DSP::Convolver::Mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3370 |                 .addConst ("MonoToStereo", DSP::Convolver::MonoToStereo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3371 |                 .addConst ("Stereo", DSP::Convolver::Stereo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3372 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                    
 3373 | 
      |                                                     
 3374 |                 .beginClass <DSP::DspShm> ("DspShm")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3375 |                 .addConstructor<void (*) (size_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::DSP::DspShm*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::FluidSynth]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::FluidSynth]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::FluidSynth; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<float, luabridge::TypeList<int, void> >; T = ARDOUR::FluidSynth; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(float, int); T = ARDOUR::FluidSynth]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3448:43:   required from here
 3445 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 3446 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~               
 3447 |                 .beginClass <FluidSynth> ("FluidSynth")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 3448 |                 .addConstructor <void (*) (float, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::FluidSynth*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::LuaOSC::Address]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::LuaOSC::Address]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::LuaOSC::Address; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = luabridge::TypeList<std::__cxx11::basic_string<char>, void>; T = ARDOUR::LuaOSC::Address; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(std::__cxx11::basic_string<char>); T = ARDOUR::LuaOSC::Address]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3516:43:   required from here
 3512 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 3513 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~               
 3514 |                 .beginNamespace ("LuaOSC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~               
 3515 |                 .beginClass<LuaOSC::Address> ("Address")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 3516 |                 .addConstructor<void (*) (std::string)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::LuaOSC::Address*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Evoral::ParameterDescriptor]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Evoral::ParameterDescriptor]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Evoral::ParameterDescriptor; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = Evoral::ParameterDescriptor; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = Evoral::ParameterDescriptor]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = Evoral::ParameterDescriptor]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:951:23:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  636 | 
      |                                      
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  638 | 
      |                                      
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  641 | 
      |                                      
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  647 | 
      |                                      
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  673 | 
      |                                      
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 | #endif
      | ~~~~~~                               
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  706 | 
      |                                      
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  709 |                 .addOperator ("__add", CPPOPERATOR(Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::timecnt_t, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  711 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  712 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  713 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  714 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timecnt_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  715 |                 .addStaticFunction ("zero", &Temporal::timecnt_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  716 |                 .addStaticFunction ("max", (Temporal::timecnt_t const & (*)()) &Temporal::timecnt_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717 |                 .addStaticFunction ("from_samples", static_cast<Temporal::timecnt_t(*)(Temporal::samplepos_t)>(&Temporal::timecnt_t::from_samples))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  718 |                 .addStaticFunction ("from_ticks", static_cast<Temporal::timecnt_t(*)(int64_t)>(&Temporal::timecnt_t::from_ticks))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  719 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  720 |                 .addStaticFunction ("from_superclock", static_cast<Temporal::timecnt_t(*)(superclock_t)>(&Temporal::timecnt_t::from_superclock))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                 .addFunction ("superclocks", &Temporal::timecnt_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  722 | #endif
      | ~~~~~~                               
  723 |                 .addFunction ("magnitude", &Temporal::timecnt_t::magnitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  724 |                 .addFunction ("position", &Temporal::timecnt_t::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  725 |                 .addFunction ("set_position", &Temporal::timecnt_t::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  726 |                 .addFunction ("is_positive", &Temporal::timecnt_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  727 |                 .addFunction ("is_negative", &Temporal::timecnt_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  728 |                 .addFunction ("is_zero", &Temporal::timecnt_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  729 |                 .addFunction ("abs", &Temporal::timecnt_t::abs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |                 .addFunction ("time_domain", &Temporal::timecnt_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |                 .addFunction ("set_time_domain", &Temporal::timecnt_t::set_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 .addFunction ("samples", &Temporal::timecnt_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  733 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  734 |                 .addFunction ("beats", &Temporal::timecnt_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  735 |                 .addFunction ("ticks", &Temporal::timecnt_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  736 |                 .addFunction ("str", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  737 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  738 |                 .addFunction ("decrement", &Temporal::timecnt_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  739 |                 .addMetamethod ("__tostring", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  740 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  741 | 
      |                                      
  742 |                 .beginClass <Temporal::BBT_Time> ("BBT_TIME")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  743 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  744 |                 .addData ("bars", &Temporal::BBT_Time::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |                 .addData ("beats", &Temporal::BBT_Time::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |                 .addData ("ticks", &Temporal::BBT_Time::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  747 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Time, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  748 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Time, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  749 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Time, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  750 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  751 |                 .addMetamethod ("__tostring", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  752 |                 // .addStaticData ("ticks_per_beat", &Temporal::ticks_per_beat, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  753 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  754 | 
      |                                      
  755 |                 .deriveClass <Temporal::BBT_Argument, Temporal::BBT_Time> ("BBT_Argument")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  756 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  757 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  758 | 
      |                                      
  759 |                 .beginClass <Temporal::BBT_Offset> ("BBT_Offset")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  760 |                 .addConstructor <void (*) (uint32_t, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  761 |                 .addData ("bars", &Temporal::BBT_Offset::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  762 |                 .addData ("beats", &Temporal::BBT_Offset::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  763 |                 .addData ("ticks", &Temporal::BBT_Offset::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  764 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Offset, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  765 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Offset, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  766 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Offset, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  767 |                 .addOperator ("__add", CPPOPERATOR(Temporal::BBT_Offset, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  768 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::BBT_Offset, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  769 | #if 0
      | ~~~~~                                
  770 |                 .addOperator ("__mul", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  771 |                 .addOperator ("__div", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  772 | #endif
      | ~~~~~~                               
  773 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  774 |                 .addMetamethod ("__tostring", &Temporal::BBT_Offset::str) // XXX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  775 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  776 | 
      |                                      
  777 |                 .beginClass <Temporal::Tempo> ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  778 |                 .addConstructor <void (*) (double, double, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  779 |                 .addFunction ("note_type", &Temporal::Tempo::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  780 |                 .addFunction ("note_types_per_minute",  (double (Temporal::Tempo::*)() const)&Temporal::Tempo::note_types_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  781 |                 .addFunction ("quarter_notes_per_minute", &Temporal::Tempo::quarter_notes_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  782 |                 .addFunction ("samples_per_quarter_note", &Temporal::Tempo::samples_per_quarter_note)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  783 |                 .addFunction ("samples_per_note_type", &Temporal::Tempo::samples_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  784 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  785 |                 .addFunction ("superclocks_per_note_type", (superclock_t (Temporal::Tempo::*)() const)&Temporal::Tempo::superclocks_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  786 | #endif
      | ~~~~~~                               
  787 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  788 | 
      |                                      
  789 |                 .beginClass <Temporal::Meter> ("Meter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  790 |                 .addConstructor <void (*) (double, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  791 |                 .addFunction ("divisions_per_bar", &Temporal::Meter::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  792 |                 .addFunction ("note_value", &Temporal::Meter::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  794 | 
      |                                      
  795 |                 .beginClass <Temporal::Point> ("Point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 |                 .addFunction ("sclock", &Temporal::Point::sclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  797 |                 .addFunction ("beats", &Temporal::Point::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 |                 .addFunction ("sample", &Temporal::Point::sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  799 |                 .addFunction ("bbt", &Temporal::Point::bbt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 |                 .addFunction ("time", &Temporal::Point::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  801 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  802 | 
      |                                      
  803 |                 /* FIXME, direct access to parent class Temporal::Tempo fails here,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  804 |                  * even thought it is access via UserdataPtr at the same address */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .deriveClass <Temporal::TempoPoint, Temporal::Tempo> ("TempoPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addCast<Temporal::Tempo> ("to_tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .addFunction ("quarters_at_sample", &Temporal::TempoPoint::quarters_at_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  809 |                 .addFunction ("time", &Temporal::TempoPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  810 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  811 | 
      |                                      
  812 |                 .deriveClass <Temporal::MeterPoint, Temporal::Meter> ("MeterPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  813 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  815 | 
      |                                      
  816 |                 .beginClass <Temporal::TempoMetric> ("TempoMetric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("tempo", &Temporal::TempoMetric::tempo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("meter", &Temporal::TempoMetric::meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .addFunction ("sample_at", &Temporal::TempoMetric::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  820 |                 .addFunction ("quarters_at", &Temporal::TempoMetric::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  821 |                 .addFunction ("note_type", &Temporal::TempoMetric::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .addFunction ("note_value", &Temporal::TempoMetric::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  823 |                 .addFunction ("divisions_per_bar", &Temporal::TempoMetric::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  824 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  825 | 
      |                                      
  826 |                 .deriveClass <Temporal::TempoMapPoint, Temporal::Point> ("TempoMapPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  827 |                 .addCast<Temporal::TempoMetric> ("to_tempometric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .addFunction ("time", &Temporal::TempoMapPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  829 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  830 | 
      |                                      
  831 |                 .beginStdVector <Temporal::TempoMapPoint> ("TempoMapPoints")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  833 | 
      |                                      
  834 |                 .beginWSPtrClass <Temporal::TempoMap> ("TempoMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  835 |                 /* we cannot use ::fetch or ::use because LuaBridge cannot overload
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  836 |                  * shared_ptr<const T> and shared_ptr<T> in the same class.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                  */
      |                  ~~                  
  838 |                 .addStaticFunction ("read", &Temporal::TempoMap::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .addStaticFunction ("write_copy", &Temporal::TempoMap::write_copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  840 |                 .addStaticFunction ("update", &Temporal::TempoMap::update)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  841 |                 .addStaticFunction ("abort_update", &Temporal::TempoMap::abort_update)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .addFunction ("set_tempo", (Temporal::TempoPoint& (Temporal::TempoMap::*)(Temporal::Tempo const &,Temporal::timepos_t const &)) &Temporal::TempoMap::set_tempo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  843 |                 .addFunction ("set_meter", (Temporal::MeterPoint& (Temporal::TempoMap::*)(Temporal::Meter const &,Temporal::timepos_t const &)) &Temporal::TempoMap::set_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  844 |                 .addFunction ("set_ramped", &Temporal::TempoMap::set_ramped)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addFunction ("set_continuing", &Temporal::TempoMap::set_continuing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 | 
      |                                      
  847 |                 .addFunction ("tempo_at", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  848 |                 .addFunction ("tempo_at_bbt", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  849 |                 .addFunction ("tempo_at_beats", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  850 | 
      |                                      
  851 |                 .addFunction ("meter_at", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  852 |                 .addFunction ("meter_at_bbt", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  853 |                 .addFunction ("meter_at_beats", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 | 
      |                                      
  855 |                 .addFunction ("bbt_at", (Temporal::BBT_Argument (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::bbt_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  856 |                 .addFunction ("bbt_at_beats", (Temporal::BBT_Argument (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::bbt_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  857 | 
      |                                      
  858 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  859 |                 .addFunction ("tempo_at_sc", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(superclock_t) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("meter_at_sc", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(superclock_t) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("superclock_at", (superclock_t (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("superclock_at_bbt", (superclock_t (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .addFunction ("superclock_at_beats", (superclock_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  864 | #endif
      | ~~~~~~                               
  865 | 
      |                                      
  866 |                 .addFunction ("quarters_at", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("quarters_at_bbt", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("quarters_at_sample", &Temporal::TempoMap::quarters_at_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 | 
      |                                      
  870 |                 .addFunction ("sample_at", (samplepos_t (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .addFunction ("sample_at_bbt", (samplepos_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  872 |                 .addFunction ("sample_at_beats", (samplepos_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  873 | 
      |                                      
  874 |                 .addFunction ("bbt_duration_at", &Temporal::TempoMap::bbt_duration_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  875 |                 .addFunction ("bbtwalk_to_quarters", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::Beats const &, Temporal::BBT_Offset const &) const) &Temporal::TempoMap::bbtwalk_to_quarters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  876 |                 .addFunction ("bbtwalk_to_quarters_bbt", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::BBT_Argument const &, Temporal::BBT_Offset const &) const) &Temporal::TempoMap::bbtwalk_to_quarters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 | 
      |                                      
  878 |                 .addFunction ("convert_duration", &Temporal::TempoMap::convert_duration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("bbt_walk", &Temporal::TempoMap::bbt_walk)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  880 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  881 |                 .addRefFunction ("grid", &Temporal::TempoMap::grid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  882 | #endif
      | ~~~~~~                               
  883 | 
      |                                      
  884 |                 .addFunction ("quarters_per_minute_at", &Temporal::TempoMap::quarters_per_minute_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  885 |                 .addFunction ("round_to_bar", &Temporal::TempoMap::round_to_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  886 |                 .addRefFunction ("midi_clock_beat_at_or_after", &Temporal::TempoMap::midi_clock_beat_at_or_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  888 | 
      |                                      
  889 |                 /* libtemporal enums */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~
  890 |                 .beginNamespace ("TimeDomain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  891 |                 .addConst ("AudioTime", Temporal::AudioTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  892 |                 .addConst ("BeatTime", Temporal::BeatTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  893 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
  894 | 
      |                                      
  895 |                 .beginNamespace ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  896 |                 .beginNamespace ("Type")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
  897 |                 .addConst ("Ramp", Temporal::Tempo::Type(Temporal::Tempo::Ramped))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  898 |                 .addConst ("Constant", Temporal::Tempo::Type(Temporal::Tempo::Constant))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  899 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
  900 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
  901 | 
      |                                      
  902 |                 .endNamespace () /* end of Temporal namespace */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  903 | 
      |                                      
  904 |                 .beginNamespace ("Evoral")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
  905 |                 .beginClass <Evoral::Event<samplepos_t> > ("Event")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  906 |                 .addFunction ("clear", &Evoral::Event<samplepos_t>::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  907 |                 .addFunction ("size", &Evoral::Event<samplepos_t>::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  908 |                 .addFunction ("set_buffer", &Evoral::Event<samplepos_t>::set_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  909 |                 .addFunction ("buffer", (uint8_t*(Evoral::Event<samplepos_t>::*)())&Evoral::Event<samplepos_t>::buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  910 |                 .addFunction ("time", (samplepos_t (Evoral::Event<samplepos_t>::*)())&Evoral::Event<samplepos_t>::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  911 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  912 | 
      |                                      
  913 |                 .beginClass <Evoral::Parameter> ("Parameter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  914 |                 .addConstructor <void (*) (uint32_t, uint8_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  915 |                 .addFunction ("type", &Evoral::Parameter::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  916 |                 .addFunction ("channel", &Evoral::Parameter::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  917 |                 .addFunction ("id", &Evoral::Parameter::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  918 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  919 | 
      |                                      
  920 |                 .beginClass <Evoral::ControlEvent> ("ControlEvent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  921 |                 .addData ("when", &Evoral::ControlEvent::when)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  922 |                 .addData ("value", &Evoral::ControlEvent::value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  923 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  924 | 
      |                                      
  925 |                 .beginWSPtrClass <Evoral::ControlList> ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  926 |                 .addCast<AutomationList> ("to_automationlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  927 |                 .addFunction ("add", &Evoral::ControlList::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  928 |                 .addFunction ("editor_add", &Evoral::ControlList::editor_add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  929 |                 .addFunction ("thin", &Evoral::ControlList::thin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  930 |                 .addFunction ("eval", &Evoral::ControlList::eval)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  931 |                 .addRefFunction ("rt_safe_eval", &Evoral::ControlList::rt_safe_eval)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  932 |                 .addFunction ("interpolation", &Evoral::ControlList::interpolation)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  933 |                 .addFunction ("set_interpolation", &Evoral::ControlList::set_interpolation)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  934 |                 .addFunction ("truncate_end", &Evoral::ControlList::truncate_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  935 |                 .addFunction ("truncate_start", &Evoral::ControlList::truncate_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  936 |                 .addFunction ("clear", (void (Evoral::ControlList::*)(Temporal::timepos_t const &, timepos_t const &))&Evoral::ControlList::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  937 |                 .addFunction ("clear_list", (void (Evoral::ControlList::*)())&Evoral::ControlList::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  938 |                 .addFunction ("in_write_pass", &Evoral::ControlList::in_write_pass)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  939 |                 .addFunction ("events", &Evoral::ControlList::events)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  940 |                 .addFunction ("size", &Evoral::ControlList::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  941 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  942 | 
      |                                      
  943 |                 .beginWSPtrClass <Evoral::ControlSet> ("ControlSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  944 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  945 | 
      |                                      
  946 |                 .beginWSPtrClass <Evoral::Control> ("Control")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  947 |                 .addFunction ("list", (std::shared_ptr<Evoral::ControlList>(Evoral::Control::*)())&Evoral::Control::list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  948 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
  949 | 
      |                                      
  950 |                 .beginClass <Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  951 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Evoral::ParameterDescriptor*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::InterThreadInfo]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::InterThreadInfo]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::InterThreadInfo; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = ARDOUR::InterThreadInfo; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = ARDOUR::InterThreadInfo]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = ARDOUR::InterThreadInfo]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:1130:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::InterThreadInfo*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::Route::ProcessorStreams]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::Route::ProcessorStreams]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::Route::ProcessorStreams; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = ARDOUR::Route::ProcessorStreams; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = ARDOUR::Route::ProcessorStreams]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = ARDOUR::Route::ProcessorStreams]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:1163:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1137 | 
      |                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1146 | 
      |                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1160 | 
      |                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::Route::ProcessorStreams*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::ChanMapping]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::ChanMapping]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::ChanMapping; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = ARDOUR::ChanMapping; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = ARDOUR::ChanMapping]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = ARDOUR::ChanMapping]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:1168:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1137 | 
      |                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1146 | 
      |                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1160 | 
      |                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1166 | 
      |                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::ChanMapping*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::Plugin::PresetRecord]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::Plugin::PresetRecord]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::Plugin::PresetRecord; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = ARDOUR::Plugin::PresetRecord; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = ARDOUR::Plugin::PresetRecord]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = ARDOUR::Plugin::PresetRecord]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:1838:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1137 | 
      |                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1146 | 
      |                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1160 | 
      |                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1166 | 
      |                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1176 | 
      |                                      
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~ 
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1193 | 
      |                                      
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                   
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1206 | 
      |                                      
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1210 | 
      |                                      
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1213 | 
      |                                      
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1224 | 
      |                                      
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1250 | 
      |                                      
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1267 | 
      |                                      
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1276 | 
      |                                      
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1281 | 
      |                                      
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1302 | 
      |                                      
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1305 | 
      |                                      
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1312 | 
      |                                      
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1316 | 
      |                                      
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1326 | 
      |                                      
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1344 | 
      |                                      
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1349 | 
      |                                      
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1386 | 
      |                                      
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1395 | 
      |                                      
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1402 | 
      |                                      
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                      
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1446 | 
      |                                      
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1454 | 
      |                                      
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1499 | 
      |                                      
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                               
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1543 | 
      |                                      
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1553 | 
      |                                      
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1556 | 
      |                                      
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1560 | 
      |                                      
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1564 | 
      |                                      
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1575 | 
      |                                      
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1591 | 
      |                                      
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1594 | 
      |                                      
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1608 | 
      |                                      
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1615 | 
      |                                      
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1619 | 
      |                                      
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                      
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~     
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                      
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                      
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                               
 1663 | 
      |                                      
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1694 | 
      |                                      
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1700 | 
      |                                      
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1724 | 
      |                                      
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1742 | 
      |                                      
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1751 | 
      |                                      
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1757 | 
      |                                      
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1768 | 
      |                                      
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1775 | 
      |                                      
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1782 | 
      |                                      
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1788 | 
      |                                      
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1797 | 
      |                                      
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1803 | 
      |                                      
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1807 | 
      |                                      
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1815 | 
      |                                      
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1819 | 
      |                                      
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1824 | 
      |                                      
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1829 | 
      |                                      
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1834 | 
      |                                      
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                      
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::Plugin::PresetRecord*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::ParameterDescriptor]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::ParameterDescriptor]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::ParameterDescriptor; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = ARDOUR::ParameterDescriptor; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = ARDOUR::ParameterDescriptor]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = ARDOUR::ParameterDescriptor]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:1849:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1137 | 
      |                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1146 | 
      |                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1160 | 
      |                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1166 | 
      |                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1176 | 
      |                                      
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~ 
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1193 | 
      |                                      
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                   
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1206 | 
      |                                      
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1210 | 
      |                                      
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1213 | 
      |                                      
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1224 | 
      |                                      
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1250 | 
      |                                      
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1267 | 
      |                                      
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1276 | 
      |                                      
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1281 | 
      |                                      
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1302 | 
      |                                      
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1305 | 
      |                                      
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1312 | 
      |                                      
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1316 | 
      |                                      
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1326 | 
      |                                      
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1344 | 
      |                                      
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1349 | 
      |                                      
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1386 | 
      |                                      
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1395 | 
      |                                      
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1402 | 
      |                                      
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                      
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1446 | 
      |                                      
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1454 | 
      |                                      
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1499 | 
      |                                      
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                               
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1543 | 
      |                                      
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1553 | 
      |                                      
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1556 | 
      |                                      
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1560 | 
      |                                      
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1564 | 
      |                                      
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1575 | 
      |                                      
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1591 | 
      |                                      
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1594 | 
      |                                      
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1608 | 
      |                                      
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1615 | 
      |                                      
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1619 | 
      |                                      
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                      
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~     
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                      
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                      
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                               
 1663 | 
      |                                      
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1694 | 
      |                                      
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1700 | 
      |                                      
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1724 | 
      |                                      
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1742 | 
      |                                      
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1751 | 
      |                                      
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1757 | 
      |                                      
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1768 | 
      |                                      
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1775 | 
      |                                      
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1782 | 
      |                                      
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1788 | 
      |                                      
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1797 | 
      |                                      
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1803 | 
      |                                      
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1807 | 
      |                                      
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1815 | 
      |                                      
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1819 | 
      |                                      
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1824 | 
      |                                      
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1829 | 
      |                                      
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1834 | 
      |                                      
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                      
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1844 | 
      |                                      
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                      
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::ParameterDescriptor*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::RawMidiParser]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::RawMidiParser]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::RawMidiParser; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = ARDOUR::RawMidiParser; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = ARDOUR::RawMidiParser]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = ARDOUR::RawMidiParser]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2229:23:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2001 | 
      |                                      
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 2010 | 
      |                                      
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2038 | 
      |                                      
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2043 | 
      |                                      
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2072 | 
      |                                      
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2080 | 
      |                                      
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2089 | 
      |                                      
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2098 | 
      |                                      
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2104 | 
      |                                      
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2122 | 
      |                                      
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2133 | 
      |                                      
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2138 | 
      |                                      
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2141 | 
      |                                      
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2145 | 
      |                                      
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2151 | 
      |                                      
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2158 | 
      |                                      
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2163 | 
      |                                      
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2167 | 
      |                                      
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2172 | 
      |                                      
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2179 | 
      |                                      
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2208 | 
      |                                      
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2211 | 
      |                                      
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2214 | 
      |                                      
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2218 | 
      |                                      
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2221 | 
      |                                      
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2224 | 
      |                                      
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2227 | 
      |                                      
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::RawMidiParser*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::LatencyRange]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::LatencyRange]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::LatencyRange; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = ARDOUR::LatencyRange; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = ARDOUR::LatencyRange]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = ARDOUR::LatencyRange]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2934:23:   required from here
 2890 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2891 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2892 |                 .beginClass <AudioBackendInfo> ("AudioBackendInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2893 |                 .addData ("name", &AudioBackendInfo::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2894 |                 .endClass()
      |                 ~~~~~~~~~~~          
 2895 |                 .beginConstStdVector <const AudioBackendInfo*> ("BackendVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2896 | 
      |                                      
 2897 |                 .beginClass <AudioBackend::DeviceStatus> ("DeviceStatus")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2898 |                 .addData ("name", &AudioBackend::DeviceStatus::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2899 |                 .addData ("available", &AudioBackend::DeviceStatus::available)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2900 |                 .endClass()
      |                 ~~~~~~~~~~~          
 2901 |                 .beginStdVector <AudioBackend::DeviceStatus> ("DeviceStatusVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2902 | 
      |                                      
 2903 |                 .beginWSPtrClass <AudioBackend> ("AudioBackend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2904 |                 .addFunction ("info", &AudioBackend::info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2905 |                 .addFunction ("sample_rate", &AudioBackend::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2906 |                 .addFunction ("buffer_size", &AudioBackend::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2907 |                 .addFunction ("period_size", &AudioBackend::period_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2908 |                 .addFunction ("dsp_load", &AudioBackend::dsp_load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2909 | 
      |                                      
 2910 |                 .addFunction ("set_sample_rate", &AudioBackend::set_sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2911 |                 .addFunction ("set_buffer_size", &AudioBackend::set_buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2912 |                 .addFunction ("set_peridod_size", &AudioBackend::set_peridod_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2913 | 
      |                                      
 2914 |                 .addFunction ("enumerate_drivers", &AudioBackend::enumerate_drivers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2915 |                 .addFunction ("driver_name", &AudioBackend::driver_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2916 |                 .addFunction ("set_driver", &AudioBackend::set_driver)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2917 | 
      |                                      
 2918 |                 .addFunction ("use_separate_input_and_output_devices", &AudioBackend::use_separate_input_and_output_devices)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2919 |                 .addFunction ("enumerate_devices", &AudioBackend::enumerate_devices)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2920 |                 .addFunction ("enumerate_input_devices", &AudioBackend::enumerate_input_devices)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2921 |                 .addFunction ("enumerate_output_devices", &AudioBackend::enumerate_output_devices)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2922 |                 .addFunction ("device_name", &AudioBackend::device_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2923 |                 .addFunction ("input_device_name", &AudioBackend::input_device_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2924 |                 .addFunction ("output_device_name", &AudioBackend::output_device_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2925 |                 .addFunction ("set_device_name", &AudioBackend::set_device_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2926 |                 .addFunction ("set_input_device_name", &AudioBackend::set_input_device_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2927 |                 .addFunction ("set_output_device_name", &AudioBackend::set_output_device_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2928 |                 .endClass()
      |                 ~~~~~~~~~~~          
 2929 | 
      |                                      
 2930 |                 .beginClass <PortEngine> ("PortEngine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2931 |                 .endClass()
      |                 ~~~~~~~~~~~          
 2932 | 
      |                                      
 2933 |                 .beginClass <LatencyRange> ("LatencyRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2934 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::LatencyRange*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::DSP::Generator]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::DSP::Generator]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::DSP::Generator; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = ARDOUR::DSP::Generator; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = ARDOUR::DSP::Generator]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = ARDOUR::DSP::Generator]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:3297:23:   required from here
 3254 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3255 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 3256 |                 .beginNamespace ("DSP")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~
 3257 |                 .addFunction ("compute_peak", ARDOUR::compute_peak)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3258 |                 .addFunction ("find_peaks", ARDOUR::find_peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3259 |                 .addFunction ("apply_gain_to_buffer", ARDOUR::apply_gain_to_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3260 |                 .addFunction ("mix_buffers_no_gain", ARDOUR::mix_buffers_no_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3261 |                 .addFunction ("mix_buffers_with_gain", ARDOUR::mix_buffers_with_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3262 |                 .addFunction ("copy_vector", ARDOUR::copy_vector)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3263 |                 .addFunction ("dB_to_coefficient", &dB_to_coefficient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3264 |                 .addFunction ("fast_coefficient_to_dB", &fast_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3265 |                 .addFunction ("accurate_coefficient_to_dB", &accurate_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3266 |                 .addFunction ("memset", &DSP::memset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3267 |                 .addFunction ("mmult", &DSP::mmult)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3268 |                 .addFunction ("log_meter", &DSP::log_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3269 |                 .addFunction ("log_meter_coeff", &DSP::log_meter_coeff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3270 |                 .addFunction ("process_map", &DSP::process_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3271 |                 .addRefFunction ("peaks", &DSP::peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3272 | 
      |                                      
 3273 |                 .beginClass <DSP::LowPass> ("LowPass")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3274 |                 .addConstructor <void (*) (double, float)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3275 |                 .addFunction ("proc", &DSP::LowPass::proc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3276 |                 .addFunction ("ctrl", &DSP::LowPass::ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3277 |                 .addFunction ("set_cutoff", &DSP::LowPass::set_cutoff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3278 |                 .addFunction ("reset", &DSP::LowPass::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3279 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 3280 |                 .beginClass <DSP::Biquad> ("Biquad")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3281 |                 .addConstructor <void (*) (double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3282 |                 .addFunction ("run", &DSP::Biquad::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3283 |                 .addFunction ("compute", &DSP::Biquad::compute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3284 |                 .addFunction ("configure", (void (DSP::Biquad::*) (DSP::Biquad const&))&DSP::Biquad::configure)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3285 |                 .addFunction ("set_coefficients", (void (DSP::Biquad::*) (double, double, double, double, double))&DSP::Biquad::configure)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3286 |                 .addFunction ("reset", &DSP::Biquad::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3287 |                 .addFunction ("dB_at_freq", &DSP::Biquad::dB_at_freq)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3288 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 3289 |                 .beginClass <DSP::FFTSpectrum> ("FFTSpectrum")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3290 |                 .addConstructor <void (*) (uint32_t, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3291 |                 .addFunction ("set_data_hann", &DSP::FFTSpectrum::set_data_hann)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3292 |                 .addFunction ("execute", &DSP::FFTSpectrum::execute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3293 |                 .addFunction ("power_at_bin", &DSP::FFTSpectrum::power_at_bin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3294 |                 .addFunction ("freq_at_bin", &DSP::FFTSpectrum::freq_at_bin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3295 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 3296 |                 .beginClass <DSP::Generator> ("Generator")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3297 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::DSP::Generator*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::DSP::Convolver::IRSettings]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::DSP::Convolver::IRSettings]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::DSP::Convolver::IRSettings; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = ARDOUR::DSP::Convolver::IRSettings; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = ARDOUR::DSP::Convolver::IRSettings]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = ARDOUR::DSP::Convolver::IRSettings]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:3323:23:   required from here
 3254 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3255 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 3256 |                 .beginNamespace ("DSP")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~
 3257 |                 .addFunction ("compute_peak", ARDOUR::compute_peak)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3258 |                 .addFunction ("find_peaks", ARDOUR::find_peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3259 |                 .addFunction ("apply_gain_to_buffer", ARDOUR::apply_gain_to_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3260 |                 .addFunction ("mix_buffers_no_gain", ARDOUR::mix_buffers_no_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3261 |                 .addFunction ("mix_buffers_with_gain", ARDOUR::mix_buffers_with_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3262 |                 .addFunction ("copy_vector", ARDOUR::copy_vector)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3263 |                 .addFunction ("dB_to_coefficient", &dB_to_coefficient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3264 |                 .addFunction ("fast_coefficient_to_dB", &fast_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3265 |                 .addFunction ("accurate_coefficient_to_dB", &accurate_coefficient_to_dB)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3266 |                 .addFunction ("memset", &DSP::memset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3267 |                 .addFunction ("mmult", &DSP::mmult)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3268 |                 .addFunction ("log_meter", &DSP::log_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3269 |                 .addFunction ("log_meter_coeff", &DSP::log_meter_coeff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3270 |                 .addFunction ("process_map", &DSP::process_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3271 |                 .addRefFunction ("peaks", &DSP::peaks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3272 | 
      |                                      
 3273 |                 .beginClass <DSP::LowPass> ("LowPass")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3274 |                 .addConstructor <void (*) (double, float)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3275 |                 .addFunction ("proc", &DSP::LowPass::proc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3276 |                 .addFunction ("ctrl", &DSP::LowPass::ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3277 |                 .addFunction ("set_cutoff", &DSP::LowPass::set_cutoff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3278 |                 .addFunction ("reset", &DSP::LowPass::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3279 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 3280 |                 .beginClass <DSP::Biquad> ("Biquad")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3281 |                 .addConstructor <void (*) (double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3282 |                 .addFunction ("run", &DSP::Biquad::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3283 |                 .addFunction ("compute", &DSP::Biquad::compute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3284 |                 .addFunction ("configure", (void (DSP::Biquad::*) (DSP::Biquad const&))&DSP::Biquad::configure)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3285 |                 .addFunction ("set_coefficients", (void (DSP::Biquad::*) (double, double, double, double, double))&DSP::Biquad::configure)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3286 |                 .addFunction ("reset", &DSP::Biquad::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3287 |                 .addFunction ("dB_at_freq", &DSP::Biquad::dB_at_freq)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3288 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 3289 |                 .beginClass <DSP::FFTSpectrum> ("FFTSpectrum")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3290 |                 .addConstructor <void (*) (uint32_t, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3291 |                 .addFunction ("set_data_hann", &DSP::FFTSpectrum::set_data_hann)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3292 |                 .addFunction ("execute", &DSP::FFTSpectrum::execute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3293 |                 .addFunction ("power_at_bin", &DSP::FFTSpectrum::power_at_bin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3294 |                 .addFunction ("freq_at_bin", &DSP::FFTSpectrum::freq_at_bin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3295 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 3296 |                 .beginClass <DSP::Generator> ("Generator")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3297 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 3298 |                 .addFunction ("run", &DSP::Generator::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3299 |                 .addFunction ("set_type", &DSP::Generator::set_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3300 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 3301 | 
      |                                      
 3302 |                 .beginClass <ARDOUR::LTCReader> ("LTCReader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3303 |                 .addConstructor <void (*) (int, LTC_TV_STANDARD)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3304 |                 .addFunction ("write", &ARDOUR::LTCReader::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3305 |                 .addRefFunction ("read", &ARDOUR::LTCReader::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3306 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 3307 | 
      |                                      
 3308 |                 .beginClass <DSP::Convolution> ("Convolution")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3309 |                 .addConstructor <void (*) (Session&, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3310 |                 .addFunction ("add_impdata", &ARDOUR::DSP::Convolution::add_impdata)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3311 |                 .addFunction ("clear_impdata", &ARDOUR::DSP::Convolution::clear_impdata)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3312 |                 .addFunction ("run", &ARDOUR::DSP::Convolution::run)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3313 |                 .addFunction ("run_mono_buffered", &ARDOUR::DSP::Convolution::run_mono_buffered)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3314 |                 .addFunction ("run_mono_no_latency", &ARDOUR::DSP::Convolution::run_mono_no_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3315 |                 .addFunction ("restart", &ARDOUR::DSP::Convolution::restart)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3316 |                 .addFunction ("ready", &ARDOUR::DSP::Convolution::ready)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3317 |                 .addFunction ("latency", &ARDOUR::DSP::Convolution::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3318 |                 .addFunction ("n_inputs", &ARDOUR::DSP::Convolution::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3319 |                 .addFunction ("n_outputs", &ARDOUR::DSP::Convolution::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3320 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 3321 | 
      |                                      
 3322 |                 .beginClass <DSP::Convolver::IRSettings> ("IRSettings")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3323 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::DSP::Convolver::IRSettings*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<std::__cxx11::basic_string<char> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<std::__cxx11::basic_string<char> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<std::__cxx11::basic_string<char> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<std::__cxx11::basic_string<char> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<std::__cxx11::basic_string<char> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<std::__cxx11::basic_string<char> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = std::__cxx11::basic_string<char>]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:456:33:   required from here
  451 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  452 |                 .beginNamespace ("C")
      |                 ~~~~~~~~~~~~~~~~~~~~~          
  453 |                 .beginStdList <std::string> ("StringList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  454 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
  455 | 
      |                                                
  456 |                 .beginStdVector <std::string> ("StringVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<std::__cxx11::basic_string<char> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<float>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<float>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<float>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<float>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<float>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<float>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = float]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:459:27:   required from here
  451 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  452 |                 .beginNamespace ("C")
      |                 ~~~~~~~~~~~~~~~~~~~~~    
  453 |                 .beginStdList <std::string> ("StringList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  454 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
  455 | 
      |                                          
  456 |                 .beginStdVector <std::string> ("StringVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  457 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
  458 | 
      |                                          
  459 |                 .beginStdVector <float> ("FloatVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<float>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<unsigned char>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<unsigned char>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<unsigned char>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<unsigned char>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<unsigned char>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<unsigned char>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = unsigned char]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:462:29:   required from here
  451 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  452 |                 .beginNamespace ("C")
      |                 ~~~~~~~~~~~~~~~~~~~~~      
  453 |                 .beginStdList <std::string> ("StringList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  454 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  455 | 
      |                                            
  456 |                 .beginStdVector <std::string> ("StringVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  457 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  458 | 
      |                                            
  459 |                 .beginStdVector <float> ("FloatVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  460 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  461 | 
      |                                            
  462 |                 .beginStdVector <uint8_t> ("ByteVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<unsigned char>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<int>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<int>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<int>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<int>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<int>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<int>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = int]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:465:29:   required from here
  451 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  452 |                 .beginNamespace ("C")
      |                 ~~~~~~~~~~~~~~~~~~~~~      
  453 |                 .beginStdList <std::string> ("StringList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  454 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  455 | 
      |                                            
  456 |                 .beginStdVector <std::string> ("StringVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  457 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  458 | 
      |                                            
  459 |                 .beginStdVector <float> ("FloatVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  460 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  461 | 
      |                                            
  462 |                 .beginStdVector <uint8_t> ("ByteVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  463 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  464 | 
      |                                            
  465 |                 .beginStdVector <int32_t> ("IntVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<int>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<float*>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<float*>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<float*>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<float*>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<float*>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<float*>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = float*]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:468:28:   required from here
  451 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  452 |                 .beginNamespace ("C")
      |                 ~~~~~~~~~~~~~~~~~~~~~     
  453 |                 .beginStdList <std::string> ("StringList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  454 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  455 | 
      |                                           
  456 |                 .beginStdVector <std::string> ("StringVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  457 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  458 | 
      |                                           
  459 |                 .beginStdVector <float> ("FloatVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  460 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  461 | 
      |                                           
  462 |                 .beginStdVector <uint8_t> ("ByteVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  463 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  464 | 
      |                                           
  465 |                 .beginStdVector <int32_t> ("IntVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  466 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  467 | 
      |                                           
  468 |                 .beginStdVector <float*> ("FloatArrayVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<float*>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<PBD::ID, std::allocator<PBD::ID> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<PBD::ID, std::allocator<PBD::ID> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<PBD::ID, std::allocator<PBD::ID> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<PBD::ID, std::allocator<PBD::ID> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<PBD::ID, std::allocator<PBD::ID> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<PBD::ID, std::allocator<PBD::ID> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = PBD::ID]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:497:29:   required from here
  486 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  487 |                 .beginNamespace ("PBD")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~    
  488 | 
      |                                            
  489 |                 .addFunction ("open_uri", (bool (*) (const std::string&))&PBD::open_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  490 |                 .addFunction ("open_uri", &PBD::open_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  491 | 
      |                                            
  492 |                 .beginClass <PBD::ID> ("ID")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  493 |                 .addConstructor <void (*) (std::string)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  494 |                 .addFunction ("to_s", &PBD::ID::to_s) // TODO special case LUA __tostring ?
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  495 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  496 | 
      |                                            
  497 |                 .beginStdVector <PBD::ID> ("IdVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<PBD::ID, std::allocator<PBD::ID> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<Temporal::TempoMapPoint>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<Temporal::TempoMapPoint>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<Temporal::TempoMapPoint>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<Temporal::TempoMapPoint>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<Temporal::TempoMapPoint>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<Temporal::TempoMapPoint>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = Temporal::TempoMapPoint]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:831:45:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  636 | 
      |                                                            
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  638 | 
      |                                                            
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  641 | 
      |                                                            
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  647 | 
      |                                                            
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  673 | 
      |                                                            
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 | #endif
      | ~~~~~~                                                     
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  706 | 
      |                                                            
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  709 |                 .addOperator ("__add", CPPOPERATOR(Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::timecnt_t, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  711 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  712 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  713 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  714 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timecnt_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  715 |                 .addStaticFunction ("zero", &Temporal::timecnt_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  716 |                 .addStaticFunction ("max", (Temporal::timecnt_t const & (*)()) &Temporal::timecnt_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717 |                 .addStaticFunction ("from_samples", static_cast<Temporal::timecnt_t(*)(Temporal::samplepos_t)>(&Temporal::timecnt_t::from_samples))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  718 |                 .addStaticFunction ("from_ticks", static_cast<Temporal::timecnt_t(*)(int64_t)>(&Temporal::timecnt_t::from_ticks))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  719 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
  720 |                 .addStaticFunction ("from_superclock", static_cast<Temporal::timecnt_t(*)(superclock_t)>(&Temporal::timecnt_t::from_superclock))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                 .addFunction ("superclocks", &Temporal::timecnt_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  722 | #endif
      | ~~~~~~                                                     
  723 |                 .addFunction ("magnitude", &Temporal::timecnt_t::magnitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  724 |                 .addFunction ("position", &Temporal::timecnt_t::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  725 |                 .addFunction ("set_position", &Temporal::timecnt_t::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  726 |                 .addFunction ("is_positive", &Temporal::timecnt_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  727 |                 .addFunction ("is_negative", &Temporal::timecnt_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  728 |                 .addFunction ("is_zero", &Temporal::timecnt_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  729 |                 .addFunction ("abs", &Temporal::timecnt_t::abs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |                 .addFunction ("time_domain", &Temporal::timecnt_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |                 .addFunction ("set_time_domain", &Temporal::timecnt_t::set_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 .addFunction ("samples", &Temporal::timecnt_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  733 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  734 |                 .addFunction ("beats", &Temporal::timecnt_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  735 |                 .addFunction ("ticks", &Temporal::timecnt_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  736 |                 .addFunction ("str", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  737 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  738 |                 .addFunction ("decrement", &Temporal::timecnt_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  739 |                 .addMetamethod ("__tostring", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  740 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  741 | 
      |                                                            
  742 |                 .beginClass <Temporal::BBT_Time> ("BBT_TIME")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  743 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  744 |                 .addData ("bars", &Temporal::BBT_Time::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |                 .addData ("beats", &Temporal::BBT_Time::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |                 .addData ("ticks", &Temporal::BBT_Time::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  747 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Time, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  748 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Time, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  749 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Time, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  750 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  751 |                 .addMetamethod ("__tostring", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  752 |                 // .addStaticData ("ticks_per_beat", &Temporal::ticks_per_beat, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  753 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  754 | 
      |                                                            
  755 |                 .deriveClass <Temporal::BBT_Argument, Temporal::BBT_Time> ("BBT_Argument")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  756 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  757 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  758 | 
      |                                                            
  759 |                 .beginClass <Temporal::BBT_Offset> ("BBT_Offset")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  760 |                 .addConstructor <void (*) (uint32_t, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  761 |                 .addData ("bars", &Temporal::BBT_Offset::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  762 |                 .addData ("beats", &Temporal::BBT_Offset::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  763 |                 .addData ("ticks", &Temporal::BBT_Offset::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  764 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Offset, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  765 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Offset, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  766 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Offset, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  767 |                 .addOperator ("__add", CPPOPERATOR(Temporal::BBT_Offset, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  768 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::BBT_Offset, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  769 | #if 0
      | ~~~~~                                                      
  770 |                 .addOperator ("__mul", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  771 |                 .addOperator ("__div", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  772 | #endif
      | ~~~~~~                                                     
  773 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  774 |                 .addMetamethod ("__tostring", &Temporal::BBT_Offset::str) // XXX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  775 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  776 | 
      |                                                            
  777 |                 .beginClass <Temporal::Tempo> ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  778 |                 .addConstructor <void (*) (double, double, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  779 |                 .addFunction ("note_type", &Temporal::Tempo::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  780 |                 .addFunction ("note_types_per_minute",  (double (Temporal::Tempo::*)() const)&Temporal::Tempo::note_types_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  781 |                 .addFunction ("quarter_notes_per_minute", &Temporal::Tempo::quarter_notes_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  782 |                 .addFunction ("samples_per_quarter_note", &Temporal::Tempo::samples_per_quarter_note)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  783 |                 .addFunction ("samples_per_note_type", &Temporal::Tempo::samples_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  784 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
  785 |                 .addFunction ("superclocks_per_note_type", (superclock_t (Temporal::Tempo::*)() const)&Temporal::Tempo::superclocks_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  786 | #endif
      | ~~~~~~                                                     
  787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  788 | 
      |                                                            
  789 |                 .beginClass <Temporal::Meter> ("Meter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  790 |                 .addConstructor <void (*) (double, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  791 |                 .addFunction ("divisions_per_bar", &Temporal::Meter::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  792 |                 .addFunction ("note_value", &Temporal::Meter::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  794 | 
      |                                                            
  795 |                 .beginClass <Temporal::Point> ("Point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  796 |                 .addFunction ("sclock", &Temporal::Point::sclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  797 |                 .addFunction ("beats", &Temporal::Point::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 |                 .addFunction ("sample", &Temporal::Point::sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  799 |                 .addFunction ("bbt", &Temporal::Point::bbt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 |                 .addFunction ("time", &Temporal::Point::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  801 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  802 | 
      |                                                            
  803 |                 /* FIXME, direct access to parent class Temporal::Tempo fails here,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  804 |                  * even thought it is access via UserdataPtr at the same address */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .deriveClass <Temporal::TempoPoint, Temporal::Tempo> ("TempoPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addCast<Temporal::Tempo> ("to_tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  807 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  808 |                 .addFunction ("quarters_at_sample", &Temporal::TempoPoint::quarters_at_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  809 |                 .addFunction ("time", &Temporal::TempoPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  810 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  811 | 
      |                                                            
  812 |                 .deriveClass <Temporal::MeterPoint, Temporal::Meter> ("MeterPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  813 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  814 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  815 | 
      |                                                            
  816 |                 .beginClass <Temporal::TempoMetric> ("TempoMetric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("tempo", &Temporal::TempoMetric::tempo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("meter", &Temporal::TempoMetric::meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .addFunction ("sample_at", &Temporal::TempoMetric::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  820 |                 .addFunction ("quarters_at", &Temporal::TempoMetric::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  821 |                 .addFunction ("note_type", &Temporal::TempoMetric::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .addFunction ("note_value", &Temporal::TempoMetric::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  823 |                 .addFunction ("divisions_per_bar", &Temporal::TempoMetric::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  824 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  825 | 
      |                                                            
  826 |                 .deriveClass <Temporal::TempoMapPoint, Temporal::Point> ("TempoMapPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  827 |                 .addCast<Temporal::TempoMetric> ("to_tempometric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .addFunction ("time", &Temporal::TempoMapPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  829 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  830 | 
      |                                                            
  831 |                 .beginStdVector <Temporal::TempoMapPoint> ("TempoMapPoints")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<Temporal::TempoMapPoint>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<_VampHost::Vamp::PluginBase::ParameterDescriptor>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<_VampHost::Vamp::PluginBase::ParameterDescriptor>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<_VampHost::Vamp::PluginBase::ParameterDescriptor>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<_VampHost::Vamp::PluginBase::ParameterDescriptor>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<_VampHost::Vamp::PluginBase::ParameterDescriptor>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<_VampHost::Vamp::PluginBase::ParameterDescriptor>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = _VampHost::Vamp::PluginBase::ParameterDescriptor]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:1052:59:   required from here
 1008 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 1009 |                 .beginNamespace ("Vamp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                                 
 1010 | 
      |                                                                          
 1011 |                 .beginClass<Vamp::RealTime> ("RealTime")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1012 |                 .addConstructor <void (*) (int, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1013 |                 .addData ("sec", &Vamp::RealTime::sec, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1014 |                 .addData ("nsec", &Vamp::RealTime::nsec, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1015 |                 .addFunction ("usec", &Vamp::RealTime::usec)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1016 |                 .addFunction ("msec", &Vamp::RealTime::msec)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1017 |                 .addFunction ("toString", &Vamp::RealTime::toString)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1018 |                 .addStaticFunction ("realTime2Frame", &Vamp::RealTime::realTime2Frame)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1019 |                 .addStaticFunction ("frame2RealTime", &Vamp::RealTime::frame2RealTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1020 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                             
 1021 | 
      |                                                                          
 1022 |                 .beginClass<Vamp::PluginBase> ("PluginBase")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1023 |                 .addFunction ("getIdentifier", &Vamp::PluginBase::getIdentifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1024 |                 .addFunction ("getName", &Vamp::PluginBase::getName)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1025 |                 .addFunction ("getDescription", &Vamp::PluginBase::getDescription)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1026 |                 .addFunction ("getMaker", &Vamp::PluginBase::getMaker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1027 |                 .addFunction ("getCopyright", &Vamp::PluginBase::getCopyright)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1028 |                 .addFunction ("getPluginVersion", &Vamp::PluginBase::getPluginVersion)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1029 |                 .addFunction ("getParameterDescriptors", &Vamp::PluginBase::getParameterDescriptors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1030 |                 .addFunction ("getParameter", &Vamp::PluginBase::getParameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1031 |                 .addFunction ("setParameter", &Vamp::PluginBase::setParameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1032 |                 .addFunction ("getPrograms", &Vamp::PluginBase::getPrograms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1033 |                 .addFunction ("getCurrentProgram", &Vamp::PluginBase::getCurrentProgram)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1034 |                 .addFunction ("selectProgram", &Vamp::PluginBase::selectProgram)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1035 |                 .addFunction ("getType", &Vamp::PluginBase::getType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1036 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                             
 1037 | 
      |                                                                          
 1038 |                 .beginNamespace ("PluginBase")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 1039 |                 .beginClass<Vamp::PluginBase::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1040 |                 .addData ("identifier", &Vamp::PluginBase::ParameterDescriptor::identifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1041 |                 .addData ("name", &Vamp::PluginBase::ParameterDescriptor::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1042 |                 .addData ("description", &Vamp::PluginBase::ParameterDescriptor::description)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1043 |                 .addData ("unit", &Vamp::PluginBase::ParameterDescriptor::unit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1044 |                 .addData ("minValue", &Vamp::PluginBase::ParameterDescriptor::minValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1045 |                 .addData ("maxValue", &Vamp::PluginBase::ParameterDescriptor::maxValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1046 |                 .addData ("defaultValue", &Vamp::PluginBase::ParameterDescriptor::defaultValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1047 |                 .addData ("isQuantized", &Vamp::PluginBase::ParameterDescriptor::isQuantized)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1048 |                 .addData ("quantizeStep", &Vamp::PluginBase::ParameterDescriptor::quantizeStep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1049 |                 .addData ("valueNames", &Vamp::PluginBase::ParameterDescriptor::valueNames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1050 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                             
 1051 | 
      |                                                                          
 1052 |                 .beginStdVector <Vamp::PluginBase::ParameterDescriptor> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<_VampHost::Vamp::PluginBase::ParameterDescriptor>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<_VampHost::Vamp::Plugin::OutputDescriptor>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<_VampHost::Vamp::Plugin::OutputDescriptor>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<_VampHost::Vamp::Plugin::OutputDescriptor>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<_VampHost::Vamp::Plugin::OutputDescriptor>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<_VampHost::Vamp::Plugin::OutputDescriptor>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<_VampHost::Vamp::Plugin::OutputDescriptor>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = _VampHost::Vamp::Plugin::OutputDescriptor]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:1112:52:   required from here
 1008 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1009 |                 .beginNamespace ("Vamp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                          
 1010 | 
      |                                                                   
 1011 |                 .beginClass<Vamp::RealTime> ("RealTime")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1012 |                 .addConstructor <void (*) (int, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1013 |                 .addData ("sec", &Vamp::RealTime::sec, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1014 |                 .addData ("nsec", &Vamp::RealTime::nsec, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1015 |                 .addFunction ("usec", &Vamp::RealTime::usec)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1016 |                 .addFunction ("msec", &Vamp::RealTime::msec)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1017 |                 .addFunction ("toString", &Vamp::RealTime::toString)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1018 |                 .addStaticFunction ("realTime2Frame", &Vamp::RealTime::realTime2Frame)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1019 |                 .addStaticFunction ("frame2RealTime", &Vamp::RealTime::frame2RealTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1020 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 1021 | 
      |                                                                   
 1022 |                 .beginClass<Vamp::PluginBase> ("PluginBase")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1023 |                 .addFunction ("getIdentifier", &Vamp::PluginBase::getIdentifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1024 |                 .addFunction ("getName", &Vamp::PluginBase::getName)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1025 |                 .addFunction ("getDescription", &Vamp::PluginBase::getDescription)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1026 |                 .addFunction ("getMaker", &Vamp::PluginBase::getMaker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1027 |                 .addFunction ("getCopyright", &Vamp::PluginBase::getCopyright)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1028 |                 .addFunction ("getPluginVersion", &Vamp::PluginBase::getPluginVersion)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1029 |                 .addFunction ("getParameterDescriptors", &Vamp::PluginBase::getParameterDescriptors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1030 |                 .addFunction ("getParameter", &Vamp::PluginBase::getParameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1031 |                 .addFunction ("setParameter", &Vamp::PluginBase::setParameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1032 |                 .addFunction ("getPrograms", &Vamp::PluginBase::getPrograms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1033 |                 .addFunction ("getCurrentProgram", &Vamp::PluginBase::getCurrentProgram)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1034 |                 .addFunction ("selectProgram", &Vamp::PluginBase::selectProgram)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1035 |                 .addFunction ("getType", &Vamp::PluginBase::getType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1036 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 1037 | 
      |                                                                   
 1038 |                 .beginNamespace ("PluginBase")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 1039 |                 .beginClass<Vamp::PluginBase::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1040 |                 .addData ("identifier", &Vamp::PluginBase::ParameterDescriptor::identifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1041 |                 .addData ("name", &Vamp::PluginBase::ParameterDescriptor::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1042 |                 .addData ("description", &Vamp::PluginBase::ParameterDescriptor::description)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1043 |                 .addData ("unit", &Vamp::PluginBase::ParameterDescriptor::unit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1044 |                 .addData ("minValue", &Vamp::PluginBase::ParameterDescriptor::minValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1045 |                 .addData ("maxValue", &Vamp::PluginBase::ParameterDescriptor::maxValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1046 |                 .addData ("defaultValue", &Vamp::PluginBase::ParameterDescriptor::defaultValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1047 |                 .addData ("isQuantized", &Vamp::PluginBase::ParameterDescriptor::isQuantized)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1048 |                 .addData ("quantizeStep", &Vamp::PluginBase::ParameterDescriptor::quantizeStep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1049 |                 .addData ("valueNames", &Vamp::PluginBase::ParameterDescriptor::valueNames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1050 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 1051 | 
      |                                                                   
 1052 |                 .beginStdVector <Vamp::PluginBase::ParameterDescriptor> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1053 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 1054 |                 .endNamespace () // Vamp::PluginBase
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1055 | 
      |                                                                   
 1056 |                 .deriveClass<Vamp::Plugin, Vamp::PluginBase> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1057 |                 //.addFunction ("process", &Vamp::Plugin::process) // unusable due to  float*const* -> LuaAPI::Vamp::process
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1058 |                 .addFunction ("initialise", &Vamp::Plugin::initialise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1059 |                 .addFunction ("reset", &Vamp::Plugin::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1060 |                 .addFunction ("getInputDomain", &Vamp::Plugin::getInputDomain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1061 |                 .addFunction ("getPreferredBlockSize", &Vamp::Plugin::getPreferredBlockSize)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1062 |                 .addFunction ("getPreferredStepSize", &Vamp::Plugin::getPreferredStepSize)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1063 |                 .addFunction ("getMinChannelCount", &Vamp::Plugin::getMinChannelCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1064 |                 .addFunction ("getMaxChannelCount", &Vamp::Plugin::getMaxChannelCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1065 |                 .addFunction ("getOutputDescriptors", &Vamp::Plugin::getOutputDescriptors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1066 |                 .addFunction ("getRemainingFeatures", &Vamp::Plugin::getRemainingFeatures)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1067 |                 .addFunction ("getType", &Vamp::Plugin::getType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1068 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 1069 | 
      |                                                                   
 1070 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 1071 |                 .beginClass<Vamp::Plugin::OutputDescriptor> ("OutputDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1072 |                 .addData ("identifier", &Vamp::Plugin::OutputDescriptor::identifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1073 |                 .addData ("description", &Vamp::Plugin::OutputDescriptor::description)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1074 |                 .addData ("unit", &Vamp::Plugin::OutputDescriptor::unit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1075 |                 .addData ("hasFixedBinCount", &Vamp::Plugin::OutputDescriptor::hasFixedBinCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1076 |                 .addData ("binCount", &Vamp::Plugin::OutputDescriptor::binCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1077 |                 .addData ("binNames", &Vamp::Plugin::OutputDescriptor::binNames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1078 |                 .addData ("hasKnownExtents", &Vamp::Plugin::OutputDescriptor::hasKnownExtents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1079 |                 .addData ("minValue", &Vamp::Plugin::OutputDescriptor::minValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1080 |                 .addData ("maxValue", &Vamp::Plugin::OutputDescriptor::maxValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1081 |                 .addData ("isQuantized", &Vamp::Plugin::OutputDescriptor::isQuantized)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1082 |                 .addData ("quantizeStep", &Vamp::Plugin::OutputDescriptor::quantizeStep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1083 |                 .addData ("sampleType", &Vamp::Plugin::OutputDescriptor::sampleType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1084 |                 .addData ("sampleRate", &Vamp::Plugin::OutputDescriptor::sampleRate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1085 |                 .addData ("hasDuration", &Vamp::Plugin::OutputDescriptor::hasDuration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1086 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 1087 | 
      |                                                                   
 1088 |                 /* Vamp::Plugin enums */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                          
 1089 |                 .beginNamespace ("InputDomain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1090 |                 .addConst ("TimeDomain", Vamp::Plugin::InputDomain(Vamp::Plugin::TimeDomain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1091 |                 .addConst ("FrequencyDomain", Vamp::Plugin::InputDomain(Vamp::Plugin::FrequencyDomain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1092 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                  
 1093 | 
      |                                                                   
 1094 |                 /* Vamp::Plugin::OutputDescriptor enum */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1095 |                 .beginNamespace ("OutputDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1096 |                 .beginNamespace ("SampleType")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 1097 |                 .addConst ("OneSamplePerStep", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::OneSamplePerStep))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1098 |                 .addConst ("FixedSampleRate", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::FixedSampleRate))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1099 |                 .addConst ("VariableSampleRate", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::VariableSampleRate))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1100 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                  
 1101 |                 .endNamespace () /* Vamp::Plugin::OutputDescriptor */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1102 | 
      |                                                                   
 1103 |                 .beginClass<Vamp::Plugin::Feature> ("Feature")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1104 |                 .addData ("hasTimestamp", &Vamp::Plugin::Feature::hasTimestamp, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1105 |                 .addData ("timestamp", &Vamp::Plugin::Feature::timestamp, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1106 |                 .addData ("hasDuration", &Vamp::Plugin::Feature::hasDuration, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1107 |                 .addData ("duration", &Vamp::Plugin::Feature::duration, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1108 |                 .addData ("values", &Vamp::Plugin::Feature::values, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |                 .addData ("label", &Vamp::Plugin::Feature::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1110 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 1111 | 
      |                                                                   
 1112 |                 .beginStdVector <Vamp::Plugin::OutputDescriptor> ("OutputList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<_VampHost::Vamp::Plugin::OutputDescriptor>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<_VampHost::Vamp::Plugin::Feature>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<_VampHost::Vamp::Plugin::Feature>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<_VampHost::Vamp::Plugin::Feature>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<_VampHost::Vamp::Plugin::Feature>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<_VampHost::Vamp::Plugin::Feature>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<_VampHost::Vamp::Plugin::Feature>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = _VampHost::Vamp::Plugin::Feature]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:1115:43:   required from here
 1008 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1009 |                 .beginNamespace ("Vamp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                 
 1010 | 
      |                                                          
 1011 |                 .beginClass<Vamp::RealTime> ("RealTime")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1012 |                 .addConstructor <void (*) (int, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1013 |                 .addData ("sec", &Vamp::RealTime::sec, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1014 |                 .addData ("nsec", &Vamp::RealTime::nsec, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1015 |                 .addFunction ("usec", &Vamp::RealTime::usec)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1016 |                 .addFunction ("msec", &Vamp::RealTime::msec)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1017 |                 .addFunction ("toString", &Vamp::RealTime::toString)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1018 |                 .addStaticFunction ("realTime2Frame", &Vamp::RealTime::realTime2Frame)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1019 |                 .addStaticFunction ("frame2RealTime", &Vamp::RealTime::frame2RealTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1020 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1021 | 
      |                                                          
 1022 |                 .beginClass<Vamp::PluginBase> ("PluginBase")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1023 |                 .addFunction ("getIdentifier", &Vamp::PluginBase::getIdentifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1024 |                 .addFunction ("getName", &Vamp::PluginBase::getName)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1025 |                 .addFunction ("getDescription", &Vamp::PluginBase::getDescription)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1026 |                 .addFunction ("getMaker", &Vamp::PluginBase::getMaker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1027 |                 .addFunction ("getCopyright", &Vamp::PluginBase::getCopyright)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1028 |                 .addFunction ("getPluginVersion", &Vamp::PluginBase::getPluginVersion)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1029 |                 .addFunction ("getParameterDescriptors", &Vamp::PluginBase::getParameterDescriptors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1030 |                 .addFunction ("getParameter", &Vamp::PluginBase::getParameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1031 |                 .addFunction ("setParameter", &Vamp::PluginBase::setParameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1032 |                 .addFunction ("getPrograms", &Vamp::PluginBase::getPrograms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1033 |                 .addFunction ("getCurrentProgram", &Vamp::PluginBase::getCurrentProgram)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1034 |                 .addFunction ("selectProgram", &Vamp::PluginBase::selectProgram)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1035 |                 .addFunction ("getType", &Vamp::PluginBase::getType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1036 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1037 | 
      |                                                          
 1038 |                 .beginNamespace ("PluginBase")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1039 |                 .beginClass<Vamp::PluginBase::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1040 |                 .addData ("identifier", &Vamp::PluginBase::ParameterDescriptor::identifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1041 |                 .addData ("name", &Vamp::PluginBase::ParameterDescriptor::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1042 |                 .addData ("description", &Vamp::PluginBase::ParameterDescriptor::description)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1043 |                 .addData ("unit", &Vamp::PluginBase::ParameterDescriptor::unit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1044 |                 .addData ("minValue", &Vamp::PluginBase::ParameterDescriptor::minValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1045 |                 .addData ("maxValue", &Vamp::PluginBase::ParameterDescriptor::maxValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1046 |                 .addData ("defaultValue", &Vamp::PluginBase::ParameterDescriptor::defaultValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1047 |                 .addData ("isQuantized", &Vamp::PluginBase::ParameterDescriptor::isQuantized)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1048 |                 .addData ("quantizeStep", &Vamp::PluginBase::ParameterDescriptor::quantizeStep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1049 |                 .addData ("valueNames", &Vamp::PluginBase::ParameterDescriptor::valueNames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1050 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1051 | 
      |                                                          
 1052 |                 .beginStdVector <Vamp::PluginBase::ParameterDescriptor> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1053 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1054 |                 .endNamespace () // Vamp::PluginBase
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1055 | 
      |                                                          
 1056 |                 .deriveClass<Vamp::Plugin, Vamp::PluginBase> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1057 |                 //.addFunction ("process", &Vamp::Plugin::process) // unusable due to  float*const* -> LuaAPI::Vamp::process
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1058 |                 .addFunction ("initialise", &Vamp::Plugin::initialise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1059 |                 .addFunction ("reset", &Vamp::Plugin::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1060 |                 .addFunction ("getInputDomain", &Vamp::Plugin::getInputDomain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1061 |                 .addFunction ("getPreferredBlockSize", &Vamp::Plugin::getPreferredBlockSize)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1062 |                 .addFunction ("getPreferredStepSize", &Vamp::Plugin::getPreferredStepSize)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1063 |                 .addFunction ("getMinChannelCount", &Vamp::Plugin::getMinChannelCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1064 |                 .addFunction ("getMaxChannelCount", &Vamp::Plugin::getMaxChannelCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1065 |                 .addFunction ("getOutputDescriptors", &Vamp::Plugin::getOutputDescriptors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1066 |                 .addFunction ("getRemainingFeatures", &Vamp::Plugin::getRemainingFeatures)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1067 |                 .addFunction ("getType", &Vamp::Plugin::getType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1068 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1069 | 
      |                                                          
 1070 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1071 |                 .beginClass<Vamp::Plugin::OutputDescriptor> ("OutputDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1072 |                 .addData ("identifier", &Vamp::Plugin::OutputDescriptor::identifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1073 |                 .addData ("description", &Vamp::Plugin::OutputDescriptor::description)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1074 |                 .addData ("unit", &Vamp::Plugin::OutputDescriptor::unit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1075 |                 .addData ("hasFixedBinCount", &Vamp::Plugin::OutputDescriptor::hasFixedBinCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1076 |                 .addData ("binCount", &Vamp::Plugin::OutputDescriptor::binCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1077 |                 .addData ("binNames", &Vamp::Plugin::OutputDescriptor::binNames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1078 |                 .addData ("hasKnownExtents", &Vamp::Plugin::OutputDescriptor::hasKnownExtents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1079 |                 .addData ("minValue", &Vamp::Plugin::OutputDescriptor::minValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1080 |                 .addData ("maxValue", &Vamp::Plugin::OutputDescriptor::maxValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1081 |                 .addData ("isQuantized", &Vamp::Plugin::OutputDescriptor::isQuantized)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1082 |                 .addData ("quantizeStep", &Vamp::Plugin::OutputDescriptor::quantizeStep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1083 |                 .addData ("sampleType", &Vamp::Plugin::OutputDescriptor::sampleType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1084 |                 .addData ("sampleRate", &Vamp::Plugin::OutputDescriptor::sampleRate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1085 |                 .addData ("hasDuration", &Vamp::Plugin::OutputDescriptor::hasDuration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1086 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1087 | 
      |                                                          
 1088 |                 /* Vamp::Plugin enums */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                 
 1089 |                 .beginNamespace ("InputDomain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1090 |                 .addConst ("TimeDomain", Vamp::Plugin::InputDomain(Vamp::Plugin::TimeDomain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1091 |                 .addConst ("FrequencyDomain", Vamp::Plugin::InputDomain(Vamp::Plugin::FrequencyDomain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1092 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                         
 1093 | 
      |                                                          
 1094 |                 /* Vamp::Plugin::OutputDescriptor enum */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1095 |                 .beginNamespace ("OutputDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1096 |                 .beginNamespace ("SampleType")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1097 |                 .addConst ("OneSamplePerStep", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::OneSamplePerStep))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1098 |                 .addConst ("FixedSampleRate", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::FixedSampleRate))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1099 |                 .addConst ("VariableSampleRate", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::VariableSampleRate))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1100 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                         
 1101 |                 .endNamespace () /* Vamp::Plugin::OutputDescriptor */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1102 | 
      |                                                          
 1103 |                 .beginClass<Vamp::Plugin::Feature> ("Feature")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1104 |                 .addData ("hasTimestamp", &Vamp::Plugin::Feature::hasTimestamp, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1105 |                 .addData ("timestamp", &Vamp::Plugin::Feature::timestamp, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1106 |                 .addData ("hasDuration", &Vamp::Plugin::Feature::hasDuration, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1107 |                 .addData ("duration", &Vamp::Plugin::Feature::duration, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1108 |                 .addData ("values", &Vamp::Plugin::Feature::values, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |                 .addData ("label", &Vamp::Plugin::Feature::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1110 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1111 | 
      |                                                          
 1112 |                 .beginStdVector <Vamp::Plugin::OutputDescriptor> ("OutputList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1113 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1114 | 
      |                                                          
 1115 |                 .beginStdVector <Vamp::Plugin::Feature> ("FeatureList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<_VampHost::Vamp::Plugin::Feature>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::map<int, std::vector<_VampHost::Vamp::Plugin::Feature> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::map<int, std::vector<_VampHost::Vamp::Plugin::Feature> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::map<int, std::vector<_VampHost::Vamp::Plugin::Feature> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::map<int, std::vector<_VampHost::Vamp::Plugin::Feature> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::map<int, std::vector<_VampHost::Vamp::Plugin::Feature> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::map<int, std::vector<_VampHost::Vamp::Plugin::Feature> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:1958:27:   required from 'luabridge::Namespace::Class<std::map<K, V> > luabridge::Namespace::beginStdMap(const char*) [with K = int; V = std::vector<_VampHost::Vamp::Plugin::Feature>]'
 1957 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 1958 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:1118:49:   required from here
 1008 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 1009 |                 .beginNamespace ("Vamp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                       
 1010 | 
      |                                                                
 1011 |                 .beginClass<Vamp::RealTime> ("RealTime")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1012 |                 .addConstructor <void (*) (int, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1013 |                 .addData ("sec", &Vamp::RealTime::sec, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1014 |                 .addData ("nsec", &Vamp::RealTime::nsec, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1015 |                 .addFunction ("usec", &Vamp::RealTime::usec)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1016 |                 .addFunction ("msec", &Vamp::RealTime::msec)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1017 |                 .addFunction ("toString", &Vamp::RealTime::toString)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1018 |                 .addStaticFunction ("realTime2Frame", &Vamp::RealTime::realTime2Frame)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1019 |                 .addStaticFunction ("frame2RealTime", &Vamp::RealTime::frame2RealTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1020 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 1021 | 
      |                                                                
 1022 |                 .beginClass<Vamp::PluginBase> ("PluginBase")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1023 |                 .addFunction ("getIdentifier", &Vamp::PluginBase::getIdentifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1024 |                 .addFunction ("getName", &Vamp::PluginBase::getName)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1025 |                 .addFunction ("getDescription", &Vamp::PluginBase::getDescription)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1026 |                 .addFunction ("getMaker", &Vamp::PluginBase::getMaker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1027 |                 .addFunction ("getCopyright", &Vamp::PluginBase::getCopyright)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1028 |                 .addFunction ("getPluginVersion", &Vamp::PluginBase::getPluginVersion)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1029 |                 .addFunction ("getParameterDescriptors", &Vamp::PluginBase::getParameterDescriptors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1030 |                 .addFunction ("getParameter", &Vamp::PluginBase::getParameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1031 |                 .addFunction ("setParameter", &Vamp::PluginBase::setParameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1032 |                 .addFunction ("getPrograms", &Vamp::PluginBase::getPrograms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1033 |                 .addFunction ("getCurrentProgram", &Vamp::PluginBase::getCurrentProgram)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1034 |                 .addFunction ("selectProgram", &Vamp::PluginBase::selectProgram)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1035 |                 .addFunction ("getType", &Vamp::PluginBase::getType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1036 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 1037 | 
      |                                                                
 1038 |                 .beginNamespace ("PluginBase")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1039 |                 .beginClass<Vamp::PluginBase::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1040 |                 .addData ("identifier", &Vamp::PluginBase::ParameterDescriptor::identifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1041 |                 .addData ("name", &Vamp::PluginBase::ParameterDescriptor::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1042 |                 .addData ("description", &Vamp::PluginBase::ParameterDescriptor::description)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1043 |                 .addData ("unit", &Vamp::PluginBase::ParameterDescriptor::unit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1044 |                 .addData ("minValue", &Vamp::PluginBase::ParameterDescriptor::minValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1045 |                 .addData ("maxValue", &Vamp::PluginBase::ParameterDescriptor::maxValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1046 |                 .addData ("defaultValue", &Vamp::PluginBase::ParameterDescriptor::defaultValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1047 |                 .addData ("isQuantized", &Vamp::PluginBase::ParameterDescriptor::isQuantized)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1048 |                 .addData ("quantizeStep", &Vamp::PluginBase::ParameterDescriptor::quantizeStep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1049 |                 .addData ("valueNames", &Vamp::PluginBase::ParameterDescriptor::valueNames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1050 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 1051 | 
      |                                                                
 1052 |                 .beginStdVector <Vamp::PluginBase::ParameterDescriptor> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1053 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 1054 |                 .endNamespace () // Vamp::PluginBase
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1055 | 
      |                                                                
 1056 |                 .deriveClass<Vamp::Plugin, Vamp::PluginBase> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1057 |                 //.addFunction ("process", &Vamp::Plugin::process) // unusable due to  float*const* -> LuaAPI::Vamp::process
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1058 |                 .addFunction ("initialise", &Vamp::Plugin::initialise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1059 |                 .addFunction ("reset", &Vamp::Plugin::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1060 |                 .addFunction ("getInputDomain", &Vamp::Plugin::getInputDomain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1061 |                 .addFunction ("getPreferredBlockSize", &Vamp::Plugin::getPreferredBlockSize)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1062 |                 .addFunction ("getPreferredStepSize", &Vamp::Plugin::getPreferredStepSize)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1063 |                 .addFunction ("getMinChannelCount", &Vamp::Plugin::getMinChannelCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1064 |                 .addFunction ("getMaxChannelCount", &Vamp::Plugin::getMaxChannelCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1065 |                 .addFunction ("getOutputDescriptors", &Vamp::Plugin::getOutputDescriptors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1066 |                 .addFunction ("getRemainingFeatures", &Vamp::Plugin::getRemainingFeatures)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1067 |                 .addFunction ("getType", &Vamp::Plugin::getType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1068 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 1069 | 
      |                                                                
 1070 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 1071 |                 .beginClass<Vamp::Plugin::OutputDescriptor> ("OutputDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1072 |                 .addData ("identifier", &Vamp::Plugin::OutputDescriptor::identifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1073 |                 .addData ("description", &Vamp::Plugin::OutputDescriptor::description)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1074 |                 .addData ("unit", &Vamp::Plugin::OutputDescriptor::unit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1075 |                 .addData ("hasFixedBinCount", &Vamp::Plugin::OutputDescriptor::hasFixedBinCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1076 |                 .addData ("binCount", &Vamp::Plugin::OutputDescriptor::binCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1077 |                 .addData ("binNames", &Vamp::Plugin::OutputDescriptor::binNames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1078 |                 .addData ("hasKnownExtents", &Vamp::Plugin::OutputDescriptor::hasKnownExtents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1079 |                 .addData ("minValue", &Vamp::Plugin::OutputDescriptor::minValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1080 |                 .addData ("maxValue", &Vamp::Plugin::OutputDescriptor::maxValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1081 |                 .addData ("isQuantized", &Vamp::Plugin::OutputDescriptor::isQuantized)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1082 |                 .addData ("quantizeStep", &Vamp::Plugin::OutputDescriptor::quantizeStep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1083 |                 .addData ("sampleType", &Vamp::Plugin::OutputDescriptor::sampleType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1084 |                 .addData ("sampleRate", &Vamp::Plugin::OutputDescriptor::sampleRate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1085 |                 .addData ("hasDuration", &Vamp::Plugin::OutputDescriptor::hasDuration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1086 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 1087 | 
      |                                                                
 1088 |                 /* Vamp::Plugin enums */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                       
 1089 |                 .beginNamespace ("InputDomain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1090 |                 .addConst ("TimeDomain", Vamp::Plugin::InputDomain(Vamp::Plugin::TimeDomain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1091 |                 .addConst ("FrequencyDomain", Vamp::Plugin::InputDomain(Vamp::Plugin::FrequencyDomain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1092 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                               
 1093 | 
      |                                                                
 1094 |                 /* Vamp::Plugin::OutputDescriptor enum */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1095 |                 .beginNamespace ("OutputDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1096 |                 .beginNamespace ("SampleType")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1097 |                 .addConst ("OneSamplePerStep", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::OneSamplePerStep))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1098 |                 .addConst ("FixedSampleRate", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::FixedSampleRate))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1099 |                 .addConst ("VariableSampleRate", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::VariableSampleRate))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1100 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                               
 1101 |                 .endNamespace () /* Vamp::Plugin::OutputDescriptor */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1102 | 
      |                                                                
 1103 |                 .beginClass<Vamp::Plugin::Feature> ("Feature")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1104 |                 .addData ("hasTimestamp", &Vamp::Plugin::Feature::hasTimestamp, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1105 |                 .addData ("timestamp", &Vamp::Plugin::Feature::timestamp, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1106 |                 .addData ("hasDuration", &Vamp::Plugin::Feature::hasDuration, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1107 |                 .addData ("duration", &Vamp::Plugin::Feature::duration, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1108 |                 .addData ("values", &Vamp::Plugin::Feature::values, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |                 .addData ("label", &Vamp::Plugin::Feature::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1110 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 1111 | 
      |                                                                
 1112 |                 .beginStdVector <Vamp::Plugin::OutputDescriptor> ("OutputList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1113 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 1114 | 
      |                                                                
 1115 |                 .beginStdVector <Vamp::Plugin::Feature> ("FeatureList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1116 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 1117 | 
      |                                                                
 1118 |                 .beginStdMap <int, Vamp::Plugin::FeatureList> ("FeatureSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::map<int, std::vector<_VampHost::Vamp::Plugin::Feature> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<ARDOUR::Plugin::PresetRecord>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<ARDOUR::Plugin::PresetRecord>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<ARDOUR::Plugin::PresetRecord>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<ARDOUR::Plugin::PresetRecord>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<ARDOUR::Plugin::PresetRecord>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<ARDOUR::Plugin::PresetRecord>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = ARDOUR::Plugin::PresetRecord]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:1845:42:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1126 | 
      |                                                         
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                                         
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                  
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                                  
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1137 | 
      |                                                         
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1146 | 
      |                                                         
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1160 | 
      |                                                         
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~               
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                  
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                        
 1166 | 
      |                                                         
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                  
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1176 | 
      |                                                         
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~                    
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                        
 1193 | 
      |                                                         
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                                      
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1206 | 
      |                                                         
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1210 | 
      |                                                         
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1213 | 
      |                                                         
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1224 | 
      |                                                         
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1250 | 
      |                                                         
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1267 | 
      |                                                         
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1276 | 
      |                                                         
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1281 | 
      |                                                         
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1302 | 
      |                                                         
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1305 | 
      |                                                         
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1312 | 
      |                                                         
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1316 | 
      |                                                         
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1326 | 
      |                                                         
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1344 | 
      |                                                         
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1349 | 
      |                                                         
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1386 | 
      |                                                         
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1395 | 
      |                                                         
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1402 | 
      |                                                         
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                                         
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1446 | 
      |                                                         
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1454 | 
      |                                                         
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1499 | 
      |                                                         
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                                   
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                                  
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1543 | 
      |                                                         
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1553 | 
      |                                                         
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1556 | 
      |                                                         
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1560 | 
      |                                                         
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1564 | 
      |                                                         
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1575 | 
      |                                                         
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1591 | 
      |                                                         
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1594 | 
      |                                                         
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1608 | 
      |                                                         
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1615 | 
      |                                                         
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1619 | 
      |                                                         
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                                         
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~                        
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                                         
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                                         
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                                  
 1663 | 
      |                                                         
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1694 | 
      |                                                         
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1700 | 
      |                                                         
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1724 | 
      |                                                         
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1742 | 
      |                                                         
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1751 | 
      |                                                         
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1757 | 
      |                                                         
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1768 | 
      |                                                         
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1775 | 
      |                                                         
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1782 | 
      |                                                         
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1788 | 
      |                                                         
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1797 | 
      |                                                         
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1803 | 
      |                                                         
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1807 | 
      |                                                         
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1815 | 
      |                                                         
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1819 | 
      |                                                         
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1824 | 
      |                                                         
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1829 | 
      |                                                         
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1834 | 
      |                                                         
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                                         
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                  
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~                            
 1844 | 
      |                                                         
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<ARDOUR::Plugin::PresetRecord>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<std::shared_ptr<ARDOUR::Processor>, std::allocator<std::shared_ptr<ARDOUR::Processor> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<std::shared_ptr<ARDOUR::Processor>, std::allocator<std::shared_ptr<ARDOUR::Processor> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<std::shared_ptr<ARDOUR::Processor>, std::allocator<std::shared_ptr<ARDOUR::Processor> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<std::shared_ptr<ARDOUR::Processor>, std::allocator<std::shared_ptr<ARDOUR::Processor> > >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<std::shared_ptr<ARDOUR::Processor>, std::allocator<std::shared_ptr<ARDOUR::Processor> > >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<std::shared_ptr<ARDOUR::Processor>, std::allocator<std::shared_ptr<ARDOUR::Processor> > >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = std::shared_ptr<ARDOUR::Processor>]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:1863:57:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 1126 | 
      |                                                                        
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1128 | 
      |                                                                        
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                 
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                                                 
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1137 | 
      |                                                                        
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1146 | 
      |                                                                        
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                               
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1160 | 
      |                                                                        
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~                              
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                 
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                       
 1166 | 
      |                                                                        
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                 
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1176 | 
      |                                                                        
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~                                   
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                       
 1193 | 
      |                                                                        
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1197 |                 //
      |                 ~~                                                     
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1206 | 
      |                                                                        
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1210 | 
      |                                                                        
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1213 | 
      |                                                                        
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1224 | 
      |                                                                        
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1250 | 
      |                                                                        
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1267 | 
      |                                                                        
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1276 | 
      |                                                                        
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1281 | 
      |                                                                        
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1302 | 
      |                                                                        
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1305 | 
      |                                                                        
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1312 | 
      |                                                                        
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1316 | 
      |                                                                        
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1326 | 
      |                                                                        
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1344 | 
      |                                                                        
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1349 | 
      |                                                                        
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1386 | 
      |                                                                        
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1395 | 
      |                                                                        
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1402 | 
      |                                                                        
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                               
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1444 | 
      |                                                                        
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1446 | 
      |                                                                        
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1454 | 
      |                                                                        
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1499 | 
      |                                                                        
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                                                  
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1541 | #endif
      | ~~~~~~                                                                 
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1543 | 
      |                                                                        
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1553 | 
      |                                                                        
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1556 | 
      |                                                                        
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1560 | 
      |                                                                        
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1564 | 
      |                                                                        
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1575 | 
      |                                                                        
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                               
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1591 | 
      |                                                                        
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1594 | 
      |                                                                        
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1608 | 
      |                                                                        
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1615 | 
      |                                                                        
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1619 | 
      |                                                                        
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1623 | 
      |                                                                        
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~                                       
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                                                        
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                                                        
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1662 | #endif
      | ~~~~~~                                                                 
 1663 | 
      |                                                                        
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                               
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1694 | 
      |                                                                        
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1700 | 
      |                                                                        
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1724 | 
      |                                                                        
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1742 | 
      |                                                                        
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1751 | 
      |                                                                        
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1757 | 
      |                                                                        
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1768 | 
      |                                                                        
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1775 | 
      |                                                                        
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1782 | 
      |                                                                        
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1788 | 
      |                                                                        
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1797 | 
      |                                                                        
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1803 | 
      |                                                                        
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1807 | 
      |                                                                        
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1815 | 
      |                                                                        
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1819 | 
      |                                                                        
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1824 | 
      |                                                                        
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1829 | 
      |                                                                        
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1834 | 
      |                                                                        
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1836 | 
      |                                                                        
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                 
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1844 | 
      |                                                                        
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                                                        
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                 
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                           
 1862 | 
      |                                                                        
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<std::shared_ptr<ARDOUR::Processor>, std::allocator<std::shared_ptr<ARDOUR::Processor> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<ARDOUR::Route>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2253:48:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2001 | 
      |                                                               
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                              
 2010 | 
      |                                                               
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2038 | 
      |                                                               
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2043 | 
      |                                                               
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2072 | 
      |                                                               
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2080 | 
      |                                                               
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2089 | 
      |                                                               
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2098 | 
      |                                                               
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2104 | 
      |                                                               
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2122 | 
      |                                                               
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2133 | 
      |                                                               
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2138 | 
      |                                                               
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2141 | 
      |                                                               
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2145 | 
      |                                                               
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2151 | 
      |                                                               
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2158 | 
      |                                                               
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2163 | 
      |                                                               
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2167 | 
      |                                                               
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2172 | 
      |                                                               
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2179 | 
      |                                                               
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2208 | 
      |                                                               
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2211 | 
      |                                                               
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2214 | 
      |                                                               
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2218 | 
      |                                                               
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2221 | 
      |                                                               
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2224 | 
      |                                                               
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2227 | 
      |                                                               
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2235 | 
      |                                                               
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2240 | 
      |                                                               
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2244 | 
      |                                                               
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2247 | 
      |                                                               
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2251 | 
      |                                                               
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Stripable> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Stripable> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Stripable> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::shared_ptr<ARDOUR::Stripable> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::shared_ptr<ARDOUR::Stripable> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Stripable> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<ARDOUR::Stripable>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2257:52:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2001 | 
      |                                                                   
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                  
 2010 | 
      |                                                                   
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2038 | 
      |                                                                   
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2043 | 
      |                                                                   
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2072 | 
      |                                                                   
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2080 | 
      |                                                                   
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2089 | 
      |                                                                   
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2098 | 
      |                                                                   
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2104 | 
      |                                                                   
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2122 | 
      |                                                                   
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2133 | 
      |                                                                   
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2138 | 
      |                                                                   
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2141 | 
      |                                                                   
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2145 | 
      |                                                                   
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2151 | 
      |                                                                   
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2158 | 
      |                                                                   
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2163 | 
      |                                                                   
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2167 | 
      |                                                                   
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2172 | 
      |                                                                   
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2179 | 
      |                                                                   
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2208 | 
      |                                                                   
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2211 | 
      |                                                                   
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2214 | 
      |                                                                   
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2218 | 
      |                                                                   
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2221 | 
      |                                                                   
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2224 | 
      |                                                                   
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2227 | 
      |                                                                   
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                            
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2235 | 
      |                                                                   
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2240 | 
      |                                                                   
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2244 | 
      |                                                                   
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2247 | 
      |                                                                   
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2251 | 
      |                                                                   
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2255 | 
      |                                                                   
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<ARDOUR::Stripable> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::VCA> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::VCA> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::VCA> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::shared_ptr<ARDOUR::VCA> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::shared_ptr<ARDOUR::VCA> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::VCA> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<ARDOUR::VCA>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2261:46:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2001 | 
      |                                                             
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                            
 2010 | 
      |                                                             
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2038 | 
      |                                                             
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2043 | 
      |                                                             
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2072 | 
      |                                                             
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2080 | 
      |                                                             
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2089 | 
      |                                                             
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2098 | 
      |                                                             
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2104 | 
      |                                                             
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2122 | 
      |                                                             
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2133 | 
      |                                                             
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2138 | 
      |                                                             
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2141 | 
      |                                                             
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2145 | 
      |                                                             
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2151 | 
      |                                                             
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2158 | 
      |                                                             
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2163 | 
      |                                                             
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2167 | 
      |                                                             
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2172 | 
      |                                                             
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2179 | 
      |                                                             
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2208 | 
      |                                                             
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2211 | 
      |                                                             
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2214 | 
      |                                                             
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2218 | 
      |                                                             
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2221 | 
      |                                                             
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2224 | 
      |                                                             
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2227 | 
      |                                                             
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                      
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2235 | 
      |                                                             
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2240 | 
      |                                                             
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2244 | 
      |                                                             
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2247 | 
      |                                                             
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2251 | 
      |                                                             
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2255 | 
      |                                                             
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2259 | 
      |                                                             
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<ARDOUR::VCA> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<std::shared_ptr<ARDOUR::VCA> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<std::shared_ptr<ARDOUR::VCA> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<std::shared_ptr<ARDOUR::VCA> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<std::shared_ptr<ARDOUR::VCA> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<std::shared_ptr<ARDOUR::VCA> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<std::shared_ptr<ARDOUR::VCA> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2083:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginConstStdVector(const char*) [with T = std::shared_ptr<ARDOUR::VCA>]'
 2082 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2083 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2265:48:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2001 | 
      |                                                               
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                              
 2010 | 
      |                                                               
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2038 | 
      |                                                               
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2043 | 
      |                                                               
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2072 | 
      |                                                               
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2080 | 
      |                                                               
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2089 | 
      |                                                               
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2098 | 
      |                                                               
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2104 | 
      |                                                               
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2122 | 
      |                                                               
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2133 | 
      |                                                               
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2138 | 
      |                                                               
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2141 | 
      |                                                               
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2145 | 
      |                                                               
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2151 | 
      |                                                               
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2158 | 
      |                                                               
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2163 | 
      |                                                               
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2167 | 
      |                                                               
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2172 | 
      |                                                               
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2179 | 
      |                                                               
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2208 | 
      |                                                               
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2211 | 
      |                                                               
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2214 | 
      |                                                               
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2218 | 
      |                                                               
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2221 | 
      |                                                               
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2224 | 
      |                                                               
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2227 | 
      |                                                               
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2235 | 
      |                                                               
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2240 | 
      |                                                               
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2244 | 
      |                                                               
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2247 | 
      |                                                               
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2251 | 
      |                                                               
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2255 | 
      |                                                               
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2259 | 
      |                                                               
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2263 | 
      |                                                               
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<std::shared_ptr<ARDOUR::VCA> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >; T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:443:45:   required from 'int to_ptr(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; lua_State = lua_State]'
  443 |         luabridge::Stack<std::shared_ptr<T>>::push (L, sp);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
../libs/ardour/luabindings.cc:2276:23:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2001 | 
      |                                      
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 2010 | 
      |                                      
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2038 | 
      |                                      
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2043 | 
      |                                      
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2072 | 
      |                                      
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2080 | 
      |                                      
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2089 | 
      |                                      
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2098 | 
      |                                      
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2104 | 
      |                                      
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2122 | 
      |                                      
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2133 | 
      |                                      
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2138 | 
      |                                      
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2141 | 
      |                                      
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2145 | 
      |                                      
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2151 | 
      |                                      
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2158 | 
      |                                      
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2163 | 
      |                                      
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2167 | 
      |                                      
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2172 | 
      |                                      
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2179 | 
      |                                      
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2208 | 
      |                                      
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2211 | 
      |                                      
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2214 | 
      |                                      
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2218 | 
      |                                      
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2221 | 
      |                                      
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2224 | 
      |                                      
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2227 | 
      |                                      
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2235 | 
      |                                      
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2240 | 
      |                                      
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2244 | 
      |                                      
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2247 | 
      |                                      
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2251 | 
      |                                      
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2255 | 
      |                                      
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2259 | 
      |                                      
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2263 | 
      |                                      
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2267 | 
      |                                      
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2272 | 
      |                                      
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::weak_ptr<ARDOUR::Route> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::weak_ptr<ARDOUR::Route> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::weak_ptr<ARDOUR::Route> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::weak_ptr<ARDOUR::Route> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::weak_ptr<ARDOUR::Route> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::weak_ptr<ARDOUR::Route> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::weak_ptr<ARDOUR::Route>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2290:46:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2001 | 
      |                                                             
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                            
 2010 | 
      |                                                             
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2038 | 
      |                                                             
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2043 | 
      |                                                             
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2072 | 
      |                                                             
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2080 | 
      |                                                             
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2089 | 
      |                                                             
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2098 | 
      |                                                             
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2104 | 
      |                                                             
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2122 | 
      |                                                             
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2133 | 
      |                                                             
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2138 | 
      |                                                             
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2141 | 
      |                                                             
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2145 | 
      |                                                             
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2151 | 
      |                                                             
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2158 | 
      |                                                             
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2163 | 
      |                                                             
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2167 | 
      |                                                             
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2172 | 
      |                                                             
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2179 | 
      |                                                             
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2208 | 
      |                                                             
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2211 | 
      |                                                             
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2214 | 
      |                                                             
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2218 | 
      |                                                             
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2221 | 
      |                                                             
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2224 | 
      |                                                             
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2227 | 
      |                                                             
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                      
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2235 | 
      |                                                             
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2240 | 
      |                                                             
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2244 | 
      |                                                             
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2247 | 
      |                                                             
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2251 | 
      |                                                             
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2255 | 
      |                                                             
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2259 | 
      |                                                             
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2263 | 
      |                                                             
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2267 | 
      |                                                             
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2272 | 
      |                                                             
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2278 | 
      |                                                             
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2283 | 
      |                                                             
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2288 | 
      |                                                             
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::weak_ptr<ARDOUR::Route> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<ARDOUR::RouteGroup*>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<ARDOUR::RouteGroup*>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<ARDOUR::RouteGroup*>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<ARDOUR::RouteGroup*>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<ARDOUR::RouteGroup*>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<ARDOUR::RouteGroup*>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2045:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<T*> > luabridge::Namespace::beginConstStdCPtrList(const char*) [with T = ARDOUR::RouteGroup]'
 2044 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2045 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2294:39:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2001 | 
      |                                                      
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                     
 2010 | 
      |                                                      
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2038 | 
      |                                                      
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2043 | 
      |                                                      
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2072 | 
      |                                                      
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2080 | 
      |                                                      
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2089 | 
      |                                                      
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2098 | 
      |                                                      
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2104 | 
      |                                                      
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2122 | 
      |                                                      
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2133 | 
      |                                                      
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2138 | 
      |                                                      
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2141 | 
      |                                                      
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2145 | 
      |                                                      
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2151 | 
      |                                                      
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2158 | 
      |                                                      
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2163 | 
      |                                                      
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2167 | 
      |                                                      
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2172 | 
      |                                                      
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2179 | 
      |                                                      
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2208 | 
      |                                                      
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2211 | 
      |                                                      
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2214 | 
      |                                                      
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2218 | 
      |                                                      
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2221 | 
      |                                                      
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2224 | 
      |                                                      
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2227 | 
      |                                                      
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~               
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2235 | 
      |                                                      
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2240 | 
      |                                                      
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2244 | 
      |                                                      
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2247 | 
      |                                                      
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2251 | 
      |                                                      
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2255 | 
      |                                                      
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2259 | 
      |                                                      
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2263 | 
      |                                                      
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2267 | 
      |                                                      
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2272 | 
      |                                                      
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2278 | 
      |                                                      
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2283 | 
      |                                                      
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2288 | 
      |                                                      
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2292 | 
      |                                                      
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<ARDOUR::RouteGroup*>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<std::shared_ptr<ARDOUR::Source> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<std::shared_ptr<ARDOUR::Source> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<std::shared_ptr<ARDOUR::Source> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<std::shared_ptr<ARDOUR::Source> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<std::shared_ptr<ARDOUR::Source> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<std::shared_ptr<ARDOUR::Source> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = std::shared_ptr<ARDOUR::Source>]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2298:46:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2001 | 
      |                                                             
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                            
 2010 | 
      |                                                             
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2038 | 
      |                                                             
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2043 | 
      |                                                             
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2072 | 
      |                                                             
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2080 | 
      |                                                             
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2089 | 
      |                                                             
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2098 | 
      |                                                             
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2104 | 
      |                                                             
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2122 | 
      |                                                             
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2133 | 
      |                                                             
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2138 | 
      |                                                             
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2141 | 
      |                                                             
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2145 | 
      |                                                             
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2151 | 
      |                                                             
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2158 | 
      |                                                             
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2163 | 
      |                                                             
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2167 | 
      |                                                             
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2172 | 
      |                                                             
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2179 | 
      |                                                             
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2208 | 
      |                                                             
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2211 | 
      |                                                             
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2214 | 
      |                                                             
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2218 | 
      |                                                             
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2221 | 
      |                                                             
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2224 | 
      |                                                             
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2227 | 
      |                                                             
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                      
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2235 | 
      |                                                             
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2240 | 
      |                                                             
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2244 | 
      |                                                             
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2247 | 
      |                                                             
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2251 | 
      |                                                             
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2255 | 
      |                                                             
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2259 | 
      |                                                             
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2263 | 
      |                                                             
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2267 | 
      |                                                             
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2272 | 
      |                                                             
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2278 | 
      |                                                             
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2283 | 
      |                                                             
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2288 | 
      |                                                             
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2292 | 
      |                                                             
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2296 | 
      |                                                             
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<std::shared_ptr<ARDOUR::Source> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<std::shared_ptr<ARDOUR::AudioReadable> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<std::shared_ptr<ARDOUR::AudioReadable> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<std::shared_ptr<ARDOUR::AudioReadable> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<std::shared_ptr<ARDOUR::AudioReadable> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<std::shared_ptr<ARDOUR::AudioReadable> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<std::shared_ptr<ARDOUR::AudioReadable> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = std::shared_ptr<ARDOUR::AudioReadable>]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2302:53:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2001 | 
      |                                                                    
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                   
 2010 | 
      |                                                                    
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2038 | 
      |                                                                    
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2043 | 
      |                                                                    
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2072 | 
      |                                                                    
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2080 | 
      |                                                                    
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2089 | 
      |                                                                    
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2098 | 
      |                                                                    
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2104 | 
      |                                                                    
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2122 | 
      |                                                                    
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2133 | 
      |                                                                    
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2138 | 
      |                                                                    
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2141 | 
      |                                                                    
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2145 | 
      |                                                                    
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2151 | 
      |                                                                    
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2158 | 
      |                                                                    
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2163 | 
      |                                                                    
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2167 | 
      |                                                                    
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2172 | 
      |                                                                    
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2179 | 
      |                                                                    
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2208 | 
      |                                                                    
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2211 | 
      |                                                                    
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2214 | 
      |                                                                    
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2218 | 
      |                                                                    
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2221 | 
      |                                                                    
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2224 | 
      |                                                                    
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2227 | 
      |                                                                    
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                             
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2235 | 
      |                                                                    
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2240 | 
      |                                                                    
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2244 | 
      |                                                                    
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2247 | 
      |                                                                    
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2251 | 
      |                                                                    
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2255 | 
      |                                                                    
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2259 | 
      |                                                                    
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2263 | 
      |                                                                    
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2267 | 
      |                                                                    
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2272 | 
      |                                                                    
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2278 | 
      |                                                                    
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2283 | 
      |                                                                    
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2288 | 
      |                                                                    
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2292 | 
      |                                                                    
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2296 | 
      |                                                                    
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2300 | 
      |                                                                    
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<std::shared_ptr<ARDOUR::AudioReadable> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<std::shared_ptr<ARDOUR::Playlist> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<std::shared_ptr<ARDOUR::Playlist> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<std::shared_ptr<ARDOUR::Playlist> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<std::shared_ptr<ARDOUR::Playlist> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<std::shared_ptr<ARDOUR::Playlist> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<std::shared_ptr<ARDOUR::Playlist> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = std::shared_ptr<ARDOUR::Playlist>]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2306:48:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2001 | 
      |                                                               
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                              
 2010 | 
      |                                                               
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2038 | 
      |                                                               
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2043 | 
      |                                                               
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2072 | 
      |                                                               
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2080 | 
      |                                                               
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2089 | 
      |                                                               
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2098 | 
      |                                                               
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2104 | 
      |                                                               
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2122 | 
      |                                                               
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2133 | 
      |                                                               
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2138 | 
      |                                                               
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2141 | 
      |                                                               
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2145 | 
      |                                                               
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2151 | 
      |                                                               
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2158 | 
      |                                                               
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2163 | 
      |                                                               
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2167 | 
      |                                                               
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2172 | 
      |                                                               
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2179 | 
      |                                                               
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2208 | 
      |                                                               
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2211 | 
      |                                                               
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2214 | 
      |                                                               
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2218 | 
      |                                                               
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2221 | 
      |                                                               
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2224 | 
      |                                                               
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2227 | 
      |                                                               
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2235 | 
      |                                                               
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2240 | 
      |                                                               
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2244 | 
      |                                                               
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2247 | 
      |                                                               
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2251 | 
      |                                                               
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2255 | 
      |                                                               
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2259 | 
      |                                                               
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2263 | 
      |                                                               
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2267 | 
      |                                                               
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2272 | 
      |                                                               
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2278 | 
      |                                                               
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2283 | 
      |                                                               
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2288 | 
      |                                                               
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2292 | 
      |                                                               
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2296 | 
      |                                                               
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2300 | 
      |                                                               
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2304 | 
      |                                                               
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<std::shared_ptr<ARDOUR::Playlist> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::weak_ptr<ARDOUR::AudioSource>, std::allocator<std::weak_ptr<ARDOUR::AudioSource> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::weak_ptr<ARDOUR::AudioSource>, std::allocator<std::weak_ptr<ARDOUR::AudioSource> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::weak_ptr<ARDOUR::AudioSource>, std::allocator<std::weak_ptr<ARDOUR::AudioSource> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::weak_ptr<ARDOUR::AudioSource>, std::allocator<std::weak_ptr<ARDOUR::AudioSource> > >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::weak_ptr<ARDOUR::AudioSource>, std::allocator<std::weak_ptr<ARDOUR::AudioSource> > >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::weak_ptr<ARDOUR::AudioSource>, std::allocator<std::weak_ptr<ARDOUR::AudioSource> > >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::weak_ptr<ARDOUR::AudioSource>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2310:52:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2001 | 
      |                                                                   
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                  
 2010 | 
      |                                                                   
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2038 | 
      |                                                                   
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2043 | 
      |                                                                   
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2072 | 
      |                                                                   
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2080 | 
      |                                                                   
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2089 | 
      |                                                                   
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2098 | 
      |                                                                   
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2104 | 
      |                                                                   
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2122 | 
      |                                                                   
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2133 | 
      |                                                                   
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2138 | 
      |                                                                   
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2141 | 
      |                                                                   
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2145 | 
      |                                                                   
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2151 | 
      |                                                                   
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2158 | 
      |                                                                   
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2163 | 
      |                                                                   
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2167 | 
      |                                                                   
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2172 | 
      |                                                                   
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2179 | 
      |                                                                   
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2208 | 
      |                                                                   
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2211 | 
      |                                                                   
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2214 | 
      |                                                                   
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2218 | 
      |                                                                   
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2221 | 
      |                                                                   
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2224 | 
      |                                                                   
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2227 | 
      |                                                                   
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                            
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2235 | 
      |                                                                   
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2240 | 
      |                                                                   
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2244 | 
      |                                                                   
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2247 | 
      |                                                                   
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2251 | 
      |                                                                   
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2255 | 
      |                                                                   
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2259 | 
      |                                                                   
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2263 | 
      |                                                                   
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2267 | 
      |                                                                   
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2272 | 
      |                                                                   
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2278 | 
      |                                                                   
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2283 | 
      |                                                                   
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2288 | 
      |                                                                   
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2292 | 
      |                                                                   
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2296 | 
      |                                                                   
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2300 | 
      |                                                                   
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2304 | 
      |                                                                   
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2308 | 
      |                                                                   
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::weak_ptr<ARDOUR::AudioSource>, std::allocator<std::weak_ptr<ARDOUR::AudioSource> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<std::shared_ptr<ARDOUR::Region> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<std::shared_ptr<ARDOUR::Region> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<std::shared_ptr<ARDOUR::Region> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<std::shared_ptr<ARDOUR::Region> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<std::shared_ptr<ARDOUR::Region> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<std::shared_ptr<ARDOUR::Region> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = std::shared_ptr<ARDOUR::Region>]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2314:46:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2001 | 
      |                                                             
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                            
 2010 | 
      |                                                             
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2038 | 
      |                                                             
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2043 | 
      |                                                             
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2072 | 
      |                                                             
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2080 | 
      |                                                             
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2089 | 
      |                                                             
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2098 | 
      |                                                             
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2104 | 
      |                                                             
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2122 | 
      |                                                             
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2133 | 
      |                                                             
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2138 | 
      |                                                             
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2141 | 
      |                                                             
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2145 | 
      |                                                             
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2151 | 
      |                                                             
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2158 | 
      |                                                             
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2163 | 
      |                                                             
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2167 | 
      |                                                             
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2172 | 
      |                                                             
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2179 | 
      |                                                             
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2208 | 
      |                                                             
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2211 | 
      |                                                             
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2214 | 
      |                                                             
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2218 | 
      |                                                             
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2221 | 
      |                                                             
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2224 | 
      |                                                             
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2227 | 
      |                                                             
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                      
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2235 | 
      |                                                             
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2240 | 
      |                                                             
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2244 | 
      |                                                             
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2247 | 
      |                                                             
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2251 | 
      |                                                             
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2255 | 
      |                                                             
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2259 | 
      |                                                             
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2263 | 
      |                                                             
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2267 | 
      |                                                             
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2272 | 
      |                                                             
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2278 | 
      |                                                             
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2283 | 
      |                                                             
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2288 | 
      |                                                             
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2292 | 
      |                                                             
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2296 | 
      |                                                             
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2300 | 
      |                                                             
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2304 | 
      |                                                             
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2308 | 
      |                                                             
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2312 | 
      |                                                             
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<std::shared_ptr<ARDOUR::Region> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::set<std::shared_ptr<PBD::Controllable> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::set<std::shared_ptr<PBD::Controllable> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::set<std::shared_ptr<PBD::Controllable> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::set<std::shared_ptr<PBD::Controllable> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::set<std::shared_ptr<PBD::Controllable> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::set<std::shared_ptr<PBD::Controllable> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:1975:27:   required from 'luabridge::Namespace::Class<std::set<T> > luabridge::Namespace::beginStdSet(const char*) [with T = std::shared_ptr<PBD::Controllable>]'
 1974 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 1975 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2318:53:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2001 | 
      |                                                                    
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                   
 2010 | 
      |                                                                    
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2038 | 
      |                                                                    
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2043 | 
      |                                                                    
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2072 | 
      |                                                                    
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2080 | 
      |                                                                    
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2089 | 
      |                                                                    
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2098 | 
      |                                                                    
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2104 | 
      |                                                                    
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2122 | 
      |                                                                    
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2133 | 
      |                                                                    
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2138 | 
      |                                                                    
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2141 | 
      |                                                                    
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2145 | 
      |                                                                    
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2151 | 
      |                                                                    
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2158 | 
      |                                                                    
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2163 | 
      |                                                                    
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2167 | 
      |                                                                    
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2172 | 
      |                                                                    
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2179 | 
      |                                                                    
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2208 | 
      |                                                                    
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2211 | 
      |                                                                    
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2214 | 
      |                                                                    
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2218 | 
      |                                                                    
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2221 | 
      |                                                                    
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2224 | 
      |                                                                    
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2227 | 
      |                                                                    
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                             
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2235 | 
      |                                                                    
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2240 | 
      |                                                                    
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2244 | 
      |                                                                    
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2247 | 
      |                                                                    
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2251 | 
      |                                                                    
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2255 | 
      |                                                                    
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2259 | 
      |                                                                    
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2263 | 
      |                                                                    
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2267 | 
      |                                                                    
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2272 | 
      |                                                                    
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2278 | 
      |                                                                    
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2283 | 
      |                                                                    
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2288 | 
      |                                                                    
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2292 | 
      |                                                                    
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2296 | 
      |                                                                    
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2300 | 
      |                                                                    
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2304 | 
      |                                                                    
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2308 | 
      |                                                                    
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2312 | 
      |                                                                    
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                       
 2316 | 
      |                                                                    
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::set<std::shared_ptr<PBD::Controllable> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::set<ARDOUR::AutomationType>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::set<ARDOUR::AutomationType>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::set<ARDOUR::AutomationType>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::set<ARDOUR::AutomationType>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::set<ARDOUR::AutomationType>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::set<ARDOUR::AutomationType>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:1975:27:   required from 'luabridge::Namespace::Class<std::set<T> > luabridge::Namespace::beginStdSet(const char*) [with T = ARDOUR::AutomationType]'
 1974 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 1975 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2322:33:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2001 | 
      |                                                
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~               
 2010 | 
      |                                                
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2038 | 
      |                                                
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2043 | 
      |                                                
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2072 | 
      |                                                
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2080 | 
      |                                                
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2089 | 
      |                                                
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2098 | 
      |                                                
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2104 | 
      |                                                
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2122 | 
      |                                                
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2133 | 
      |                                                
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2138 | 
      |                                                
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2141 | 
      |                                                
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2145 | 
      |                                                
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2151 | 
      |                                                
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2158 | 
      |                                                
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2163 | 
      |                                                
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2167 | 
      |                                                
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2172 | 
      |                                                
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2179 | 
      |                                                
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2208 | 
      |                                                
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2211 | 
      |                                                
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2214 | 
      |                                                
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2218 | 
      |                                                
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2221 | 
      |                                                
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2224 | 
      |                                                
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2227 | 
      |                                                
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~         
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2235 | 
      |                                                
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2240 | 
      |                                                
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2244 | 
      |                                                
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2247 | 
      |                                                
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2251 | 
      |                                                
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2255 | 
      |                                                
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2259 | 
      |                                                
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2263 | 
      |                                                
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2267 | 
      |                                                
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2272 | 
      |                                                
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2278 | 
      |                                                
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2283 | 
      |                                                
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2288 | 
      |                                                
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2292 | 
      |                                                
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2296 | 
      |                                                
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2300 | 
      |                                                
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2304 | 
      |                                                
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2308 | 
      |                                                
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2312 | 
      |                                                
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2316 | 
      |                                                
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2320 | 
      |                                                
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::set<ARDOUR::AutomationType>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<long int>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<long int>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<long int>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<long int>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<long int>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<long int>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = long int]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2326:33:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2001 | 
      |                                                
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~               
 2010 | 
      |                                                
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2038 | 
      |                                                
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2043 | 
      |                                                
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2072 | 
      |                                                
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2080 | 
      |                                                
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2089 | 
      |                                                
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2098 | 
      |                                                
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2104 | 
      |                                                
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2122 | 
      |                                                
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2133 | 
      |                                                
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2138 | 
      |                                                
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2141 | 
      |                                                
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2145 | 
      |                                                
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2151 | 
      |                                                
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2158 | 
      |                                                
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2163 | 
      |                                                
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2167 | 
      |                                                
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2172 | 
      |                                                
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2179 | 
      |                                                
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2208 | 
      |                                                
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2211 | 
      |                                                
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2214 | 
      |                                                
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2218 | 
      |                                                
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2221 | 
      |                                                
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2224 | 
      |                                                
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2227 | 
      |                                                
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~         
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2235 | 
      |                                                
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2240 | 
      |                                                
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2244 | 
      |                                                
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2247 | 
      |                                                
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2251 | 
      |                                                
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2255 | 
      |                                                
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2259 | 
      |                                                
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2263 | 
      |                                                
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2267 | 
      |                                                
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2272 | 
      |                                                
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2278 | 
      |                                                
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2283 | 
      |                                                
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2288 | 
      |                                                
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2292 | 
      |                                                
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2296 | 
      |                                                
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2300 | 
      |                                                
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2304 | 
      |                                                
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2308 | 
      |                                                
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2312 | 
      |                                                
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2316 | 
      |                                                
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2320 | 
      |                                                
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2324 | 
      |                                                
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<long int>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<ARDOUR::Region>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2330:49:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2001 | 
      |                                                                
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                               
 2010 | 
      |                                                                
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2038 | 
      |                                                                
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2043 | 
      |                                                                
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2072 | 
      |                                                                
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2080 | 
      |                                                                
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2089 | 
      |                                                                
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2098 | 
      |                                                                
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2104 | 
      |                                                                
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2122 | 
      |                                                                
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2133 | 
      |                                                                
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2138 | 
      |                                                                
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2141 | 
      |                                                                
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2145 | 
      |                                                                
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2151 | 
      |                                                                
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2158 | 
      |                                                                
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2163 | 
      |                                                                
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2167 | 
      |                                                                
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2172 | 
      |                                                                
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2179 | 
      |                                                                
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2208 | 
      |                                                                
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2211 | 
      |                                                                
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2214 | 
      |                                                                
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2218 | 
      |                                                                
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2221 | 
      |                                                                
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2224 | 
      |                                                                
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2227 | 
      |                                                                
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                         
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2235 | 
      |                                                                
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2240 | 
      |                                                                
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2244 | 
      |                                                                
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2247 | 
      |                                                                
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2251 | 
      |                                                                
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2255 | 
      |                                                                
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2259 | 
      |                                                                
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2263 | 
      |                                                                
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2267 | 
      |                                                                
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2272 | 
      |                                                                
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2278 | 
      |                                                                
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2283 | 
      |                                                                
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2288 | 
      |                                                                
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2292 | 
      |                                                                
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2296 | 
      |                                                                
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2300 | 
      |                                                                
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2304 | 
      |                                                                
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2308 | 
      |                                                                
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2312 | 
      |                                                                
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2316 | 
      |                                                                
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2320 | 
      |                                                                
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2324 | 
      |                                                                
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2328 | 
      |                                                                
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:443:45:   required from 'int to_ptr(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Region> >; lua_State = lua_State]'
  443 |         luabridge::Stack<std::shared_ptr<T>>::push (L, sp);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
../libs/ardour/luabindings.cc:2336:23:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2001 | 
      |                                      
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 2010 | 
      |                                      
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2038 | 
      |                                      
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2043 | 
      |                                      
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2072 | 
      |                                      
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2080 | 
      |                                      
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2089 | 
      |                                      
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2098 | 
      |                                      
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2104 | 
      |                                      
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2122 | 
      |                                      
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2133 | 
      |                                      
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2138 | 
      |                                      
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2141 | 
      |                                      
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2145 | 
      |                                      
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2151 | 
      |                                      
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2158 | 
      |                                      
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2163 | 
      |                                      
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2167 | 
      |                                      
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2172 | 
      |                                      
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2179 | 
      |                                      
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2208 | 
      |                                      
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2211 | 
      |                                      
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2214 | 
      |                                      
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2218 | 
      |                                      
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2221 | 
      |                                      
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2224 | 
      |                                      
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2227 | 
      |                                      
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2235 | 
      |                                      
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2240 | 
      |                                      
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2244 | 
      |                                      
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2247 | 
      |                                      
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2251 | 
      |                                      
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2255 | 
      |                                      
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2259 | 
      |                                      
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2263 | 
      |                                      
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2267 | 
      |                                      
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2272 | 
      |                                      
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2278 | 
      |                                      
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2283 | 
      |                                      
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2288 | 
      |                                      
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2292 | 
      |                                      
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2296 | 
      |                                      
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2300 | 
      |                                      
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2304 | 
      |                                      
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2308 | 
      |                                      
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2312 | 
      |                                      
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2316 | 
      |                                      
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2320 | 
      |                                      
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2324 | 
      |                                      
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2328 | 
      |                                      
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 2332 | 
      |                                      
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::Region> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::map<PBD::ID, std::shared_ptr<ARDOUR::Region> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::map<PBD::ID, std::shared_ptr<ARDOUR::Region> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::map<PBD::ID, std::shared_ptr<ARDOUR::Region> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::map<PBD::ID, std::shared_ptr<ARDOUR::Region> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::map<PBD::ID, std::shared_ptr<ARDOUR::Region> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::map<PBD::ID, std::shared_ptr<ARDOUR::Region> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:1958:27:   required from 'luabridge::Namespace::Class<std::map<K, V> > luabridge::Namespace::beginStdMap(const char*) [with K = PBD::ID; V = std::shared_ptr<ARDOUR::Region>]'
 1957 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 1958 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2340:51:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2001 | 
      |                                                                  
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                 
 2010 | 
      |                                                                  
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2038 | 
      |                                                                  
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2043 | 
      |                                                                  
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2072 | 
      |                                                                  
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2080 | 
      |                                                                  
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2089 | 
      |                                                                  
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2098 | 
      |                                                                  
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2104 | 
      |                                                                  
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2122 | 
      |                                                                  
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2133 | 
      |                                                                  
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2138 | 
      |                                                                  
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2141 | 
      |                                                                  
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2145 | 
      |                                                                  
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2151 | 
      |                                                                  
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2158 | 
      |                                                                  
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2163 | 
      |                                                                  
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2167 | 
      |                                                                  
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2172 | 
      |                                                                  
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2179 | 
      |                                                                  
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2208 | 
      |                                                                  
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2211 | 
      |                                                                  
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2214 | 
      |                                                                  
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2218 | 
      |                                                                  
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2221 | 
      |                                                                  
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2224 | 
      |                                                                  
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2227 | 
      |                                                                  
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                           
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2235 | 
      |                                                                  
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2240 | 
      |                                                                  
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2244 | 
      |                                                                  
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2247 | 
      |                                                                  
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2251 | 
      |                                                                  
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2255 | 
      |                                                                  
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2259 | 
      |                                                                  
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2263 | 
      |                                                                  
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2267 | 
      |                                                                  
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2272 | 
      |                                                                  
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2278 | 
      |                                                                  
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2283 | 
      |                                                                  
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2288 | 
      |                                                                  
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2292 | 
      |                                                                  
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2296 | 
      |                                                                  
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2300 | 
      |                                                                  
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2304 | 
      |                                                                  
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2308 | 
      |                                                                  
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2312 | 
      |                                                                  
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2316 | 
      |                                                                  
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2320 | 
      |                                                                  
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2324 | 
      |                                                                  
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2328 | 
      |                                                                  
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2332 | 
      |                                                                  
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2338 | 
      |                                                                  
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::map<PBD::ID, std::shared_ptr<ARDOUR::Region> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::map<std::__cxx11::basic_string<char>, ARDOUR::PortManager::DPM, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ARDOUR::PortManager::DPM> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::map<std::__cxx11::basic_string<char>, ARDOUR::PortManager::DPM, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ARDOUR::PortManager::DPM> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::map<std::__cxx11::basic_string<char>, ARDOUR::PortManager::DPM, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ARDOUR::PortManager::DPM> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::map<std::__cxx11::basic_string<char>, ARDOUR::PortManager::DPM, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ARDOUR::PortManager::DPM> > >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::map<std::__cxx11::basic_string<char>, ARDOUR::PortManager::DPM, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ARDOUR::PortManager::DPM> > >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::map<std::__cxx11::basic_string<char>, ARDOUR::PortManager::DPM, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ARDOUR::PortManager::DPM> > >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:1958:27:   required from 'luabridge::Namespace::Class<std::map<K, V> > luabridge::Namespace::beginStdMap(const char*) [with K = std::__cxx11::basic_string<char>; V = ARDOUR::PortManager::DPM]'
 1957 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 1958 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2344:48:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2001 | 
      |                                                               
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                              
 2010 | 
      |                                                               
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2038 | 
      |                                                               
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2043 | 
      |                                                               
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2072 | 
      |                                                               
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2080 | 
      |                                                               
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2089 | 
      |                                                               
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2098 | 
      |                                                               
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2104 | 
      |                                                               
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2122 | 
      |                                                               
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2133 | 
      |                                                               
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2138 | 
      |                                                               
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2141 | 
      |                                                               
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2145 | 
      |                                                               
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2151 | 
      |                                                               
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2158 | 
      |                                                               
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2163 | 
      |                                                               
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2167 | 
      |                                                               
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2172 | 
      |                                                               
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2179 | 
      |                                                               
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2208 | 
      |                                                               
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2211 | 
      |                                                               
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2214 | 
      |                                                               
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2218 | 
      |                                                               
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2221 | 
      |                                                               
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2224 | 
      |                                                               
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2227 | 
      |                                                               
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2235 | 
      |                                                               
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2240 | 
      |                                                               
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2244 | 
      |                                                               
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2247 | 
      |                                                               
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2251 | 
      |                                                               
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2255 | 
      |                                                               
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2259 | 
      |                                                               
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2263 | 
      |                                                               
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2267 | 
      |                                                               
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2272 | 
      |                                                               
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2278 | 
      |                                                               
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2283 | 
      |                                                               
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2288 | 
      |                                                               
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2292 | 
      |                                                               
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2296 | 
      |                                                               
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2300 | 
      |                                                               
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2304 | 
      |                                                               
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2308 | 
      |                                                               
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2312 | 
      |                                                               
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2316 | 
      |                                                               
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2320 | 
      |                                                               
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2324 | 
      |                                                               
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2328 | 
      |                                                               
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2332 | 
      |                                                               
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2338 | 
      |                                                               
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2342 | 
      |                                                               
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::map<std::__cxx11::basic_string<char>, ARDOUR::PortManager::DPM, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ARDOUR::PortManager::DPM> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::map<std::__cxx11::basic_string<char>, ARDOUR::PortManager::MPM, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ARDOUR::PortManager::MPM> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::map<std::__cxx11::basic_string<char>, ARDOUR::PortManager::MPM, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ARDOUR::PortManager::MPM> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::map<std::__cxx11::basic_string<char>, ARDOUR::PortManager::MPM, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ARDOUR::PortManager::MPM> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::map<std::__cxx11::basic_string<char>, ARDOUR::PortManager::MPM, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ARDOUR::PortManager::MPM> > >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::map<std::__cxx11::basic_string<char>, ARDOUR::PortManager::MPM, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ARDOUR::PortManager::MPM> > >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::map<std::__cxx11::basic_string<char>, ARDOUR::PortManager::MPM, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ARDOUR::PortManager::MPM> > >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:1958:27:   required from 'luabridge::Namespace::Class<std::map<K, V> > luabridge::Namespace::beginStdMap(const char*) [with K = std::__cxx11::basic_string<char>; V = ARDOUR::PortManager::MPM]'
 1957 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 1958 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2348:48:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2001 | 
      |                                                               
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                              
 2010 | 
      |                                                               
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2038 | 
      |                                                               
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2043 | 
      |                                                               
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2072 | 
      |                                                               
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2080 | 
      |                                                               
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2089 | 
      |                                                               
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2098 | 
      |                                                               
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2104 | 
      |                                                               
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2122 | 
      |                                                               
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2133 | 
      |                                                               
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2138 | 
      |                                                               
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2141 | 
      |                                                               
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2145 | 
      |                                                               
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2151 | 
      |                                                               
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2158 | 
      |                                                               
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2163 | 
      |                                                               
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2167 | 
      |                                                               
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2172 | 
      |                                                               
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2179 | 
      |                                                               
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2208 | 
      |                                                               
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2211 | 
      |                                                               
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2214 | 
      |                                                               
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2218 | 
      |                                                               
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2221 | 
      |                                                               
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2224 | 
      |                                                               
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2227 | 
      |                                                               
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2235 | 
      |                                                               
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2240 | 
      |                                                               
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2244 | 
      |                                                               
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2247 | 
      |                                                               
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2251 | 
      |                                                               
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2255 | 
      |                                                               
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2259 | 
      |                                                               
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2263 | 
      |                                                               
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2267 | 
      |                                                               
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2272 | 
      |                                                               
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2278 | 
      |                                                               
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2283 | 
      |                                                               
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2288 | 
      |                                                               
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2292 | 
      |                                                               
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2296 | 
      |                                                               
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2300 | 
      |                                                               
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2304 | 
      |                                                               
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2308 | 
      |                                                               
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2312 | 
      |                                                               
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2316 | 
      |                                                               
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2320 | 
      |                                                               
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2324 | 
      |                                                               
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2328 | 
      |                                                               
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2332 | 
      |                                                               
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2338 | 
      |                                                               
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2342 | 
      |                                                               
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2346 | 
      |                                                               
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::map<std::__cxx11::basic_string<char>, ARDOUR::PortManager::MPM, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ARDOUR::PortManager::MPM> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Port> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Port> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Port> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::shared_ptr<ARDOUR::Port> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::shared_ptr<ARDOUR::Port> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Port> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<ARDOUR::Port>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2356:47:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2001 | 
      |                                                              
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                             
 2010 | 
      |                                                              
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2038 | 
      |                                                              
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2043 | 
      |                                                              
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2072 | 
      |                                                              
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2080 | 
      |                                                              
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2089 | 
      |                                                              
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2098 | 
      |                                                              
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2104 | 
      |                                                              
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2122 | 
      |                                                              
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2133 | 
      |                                                              
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2138 | 
      |                                                              
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2141 | 
      |                                                              
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2145 | 
      |                                                              
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2151 | 
      |                                                              
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2158 | 
      |                                                              
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2163 | 
      |                                                              
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2167 | 
      |                                                              
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2172 | 
      |                                                              
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2179 | 
      |                                                              
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2208 | 
      |                                                              
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2211 | 
      |                                                              
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2214 | 
      |                                                              
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2218 | 
      |                                                              
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2221 | 
      |                                                              
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2224 | 
      |                                                              
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2227 | 
      |                                                              
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                       
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2235 | 
      |                                                              
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2240 | 
      |                                                              
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2244 | 
      |                                                              
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2247 | 
      |                                                              
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2251 | 
      |                                                              
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2255 | 
      |                                                              
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2259 | 
      |                                                              
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2263 | 
      |                                                              
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2267 | 
      |                                                              
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2272 | 
      |                                                              
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2278 | 
      |                                                              
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2283 | 
      |                                                              
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2288 | 
      |                                                              
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2292 | 
      |                                                              
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2296 | 
      |                                                              
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2300 | 
      |                                                              
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2304 | 
      |                                                              
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2308 | 
      |                                                              
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2312 | 
      |                                                              
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2316 | 
      |                                                              
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2320 | 
      |                                                              
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2324 | 
      |                                                              
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2328 | 
      |                                                              
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2332 | 
      |                                                              
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2338 | 
      |                                                              
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2342 | 
      |                                                              
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2346 | 
      |                                                              
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2350 | 
      |                                                              
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2354 | 
      |                                                              
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<ARDOUR::Port> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<ARDOUR::Location*>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<ARDOUR::Location*>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<ARDOUR::Location*>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<ARDOUR::Location*>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<ARDOUR::Location*>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<ARDOUR::Location*>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2045:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<T*> > luabridge::Namespace::beginConstStdCPtrList(const char*) [with T = ARDOUR::Location]'
 2044 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2045 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2359:37:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2001 | 
      |                                                    
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                   
 2010 | 
      |                                                    
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2038 | 
      |                                                    
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2043 | 
      |                                                    
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2072 | 
      |                                                    
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2080 | 
      |                                                    
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2089 | 
      |                                                    
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2098 | 
      |                                                    
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2104 | 
      |                                                    
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2122 | 
      |                                                    
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2133 | 
      |                                                    
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2138 | 
      |                                                    
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2141 | 
      |                                                    
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2145 | 
      |                                                    
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2151 | 
      |                                                    
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2158 | 
      |                                                    
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2163 | 
      |                                                    
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2167 | 
      |                                                    
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2172 | 
      |                                                    
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2179 | 
      |                                                    
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2208 | 
      |                                                    
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2211 | 
      |                                                    
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2214 | 
      |                                                    
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2218 | 
      |                                                    
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2221 | 
      |                                                    
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2224 | 
      |                                                    
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2227 | 
      |                                                    
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~             
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2235 | 
      |                                                    
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2240 | 
      |                                                    
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2244 | 
      |                                                    
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2247 | 
      |                                                    
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2251 | 
      |                                                    
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2255 | 
      |                                                    
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2259 | 
      |                                                    
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2263 | 
      |                                                    
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2267 | 
      |                                                    
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2272 | 
      |                                                    
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2278 | 
      |                                                    
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2283 | 
      |                                                    
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2288 | 
      |                                                    
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2292 | 
      |                                                    
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2296 | 
      |                                                    
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2300 | 
      |                                                    
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2304 | 
      |                                                    
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2308 | 
      |                                                    
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2312 | 
      |                                                    
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2316 | 
      |                                                    
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2320 | 
      |                                                    
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2324 | 
      |                                                    
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2328 | 
      |                                                    
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2332 | 
      |                                                    
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2338 | 
      |                                                    
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2342 | 
      |                                                    
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2346 | 
      |                                                    
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2350 | 
      |                                                    
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2354 | 
      |                                                    
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2357 |                 .endClass ()
      |                 ~~~~~~~~~~~~                       
 2358 | 
      |                                                    
 2359 |                 .beginConstStdCPtrList <Location> ("LocationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<ARDOUR::Location*>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<Evoral::Parameter>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<Evoral::Parameter>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<Evoral::Parameter>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<Evoral::Parameter>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<Evoral::Parameter>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<Evoral::Parameter>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2083:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginConstStdVector(const char*) [with T = Evoral::Parameter]'
 2082 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2083 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2362:44:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2001 | 
      |                                                           
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                          
 2010 | 
      |                                                           
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2038 | 
      |                                                           
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2043 | 
      |                                                           
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2072 | 
      |                                                           
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2080 | 
      |                                                           
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2089 | 
      |                                                           
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2098 | 
      |                                                           
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2104 | 
      |                                                           
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2122 | 
      |                                                           
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2133 | 
      |                                                           
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2138 | 
      |                                                           
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2141 | 
      |                                                           
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2145 | 
      |                                                           
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2151 | 
      |                                                           
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2158 | 
      |                                                           
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2163 | 
      |                                                           
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2167 | 
      |                                                           
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2172 | 
      |                                                           
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2179 | 
      |                                                           
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2208 | 
      |                                                           
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2211 | 
      |                                                           
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2214 | 
      |                                                           
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2218 | 
      |                                                           
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2221 | 
      |                                                           
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2224 | 
      |                                                           
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2227 | 
      |                                                           
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                    
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2235 | 
      |                                                           
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2240 | 
      |                                                           
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2244 | 
      |                                                           
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2247 | 
      |                                                           
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2251 | 
      |                                                           
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2255 | 
      |                                                           
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2259 | 
      |                                                           
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2263 | 
      |                                                           
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2267 | 
      |                                                           
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2272 | 
      |                                                           
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2278 | 
      |                                                           
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2283 | 
      |                                                           
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2288 | 
      |                                                           
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2292 | 
      |                                                           
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2296 | 
      |                                                           
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2300 | 
      |                                                           
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2304 | 
      |                                                           
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2308 | 
      |                                                           
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2312 | 
      |                                                           
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2316 | 
      |                                                           
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2320 | 
      |                                                           
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2324 | 
      |                                                           
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2328 | 
      |                                                           
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2332 | 
      |                                                           
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2338 | 
      |                                                           
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2342 | 
      |                                                           
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2346 | 
      |                                                           
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2350 | 
      |                                                           
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2354 | 
      |                                                           
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2357 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2358 | 
      |                                                           
 2359 |                 .beginConstStdCPtrList <Location> ("LocationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2360 |                 .endClass ()
      |                 ~~~~~~~~~~~~                              
 2361 | 
      |                                                           
 2362 |                 .beginConstStdVector <Evoral::Parameter> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<Evoral::Parameter>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<Evoral::ControlEvent*>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<Evoral::ControlEvent*>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<Evoral::ControlEvent*>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<Evoral::ControlEvent*>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<Evoral::ControlEvent*>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<Evoral::ControlEvent*>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2045:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<T*> > luabridge::Namespace::beginConstStdCPtrList(const char*) [with T = Evoral::ControlEvent]'
 2044 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2045 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2381:49:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2001 | 
      |                                                                
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                               
 2010 | 
      |                                                                
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2038 | 
      |                                                                
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2043 | 
      |                                                                
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2072 | 
      |                                                                
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2080 | 
      |                                                                
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2089 | 
      |                                                                
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2098 | 
      |                                                                
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2104 | 
      |                                                                
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2122 | 
      |                                                                
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2133 | 
      |                                                                
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2138 | 
      |                                                                
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2141 | 
      |                                                                
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2145 | 
      |                                                                
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2151 | 
      |                                                                
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2158 | 
      |                                                                
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2163 | 
      |                                                                
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2167 | 
      |                                                                
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2172 | 
      |                                                                
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2179 | 
      |                                                                
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2208 | 
      |                                                                
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2211 | 
      |                                                                
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2214 | 
      |                                                                
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2218 | 
      |                                                                
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2221 | 
      |                                                                
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2224 | 
      |                                                                
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2227 | 
      |                                                                
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                         
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2235 | 
      |                                                                
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2240 | 
      |                                                                
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2244 | 
      |                                                                
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2247 | 
      |                                                                
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2251 | 
      |                                                                
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2255 | 
      |                                                                
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2259 | 
      |                                                                
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2263 | 
      |                                                                
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2267 | 
      |                                                                
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2272 | 
      |                                                                
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2278 | 
      |                                                                
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2283 | 
      |                                                                
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2288 | 
      |                                                                
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2292 | 
      |                                                                
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2296 | 
      |                                                                
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2300 | 
      |                                                                
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2304 | 
      |                                                                
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2308 | 
      |                                                                
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2312 | 
      |                                                                
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2316 | 
      |                                                                
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2320 | 
      |                                                                
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2324 | 
      |                                                                
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2328 | 
      |                                                                
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2332 | 
      |                                                                
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2338 | 
      |                                                                
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2342 | 
      |                                                                
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2346 | 
      |                                                                
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2350 | 
      |                                                                
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2354 | 
      |                                                                
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2357 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2358 | 
      |                                                                
 2359 |                 .beginConstStdCPtrList <Location> ("LocationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2360 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2361 | 
      |                                                                
 2362 |                 .beginConstStdVector <Evoral::Parameter> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2363 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2364 | 
      |                                                                
 2365 |                 .beginStdList <std::shared_ptr<AutomationControl> > ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2366 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2367 | 
      |                                                                
 2368 |                 .beginPtrStdList <std::shared_ptr<AutomationControl> > ("ControlListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2369 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <AutomationControl> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2370 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2371 | 
      |                                                                
 2372 |                 .beginStdList <std::shared_ptr<Evoral::Note<Temporal::Beats> > > ("NotePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2373 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2374 | 
      |                                                                
 2375 |                 .beginStdList <std::shared_ptr<Evoral::Event<Temporal::Beats> > > ("EventPtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2376 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2377 | 
      |                                                                
 2378 |                 .beginStdList <std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > > ("PatchChangePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2379 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2380 | 
      |                                                                
 2381 |                 .beginConstStdCPtrList <Evoral::ControlEvent> ("EventList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<Evoral::ControlEvent*>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::weak_ptr<ARDOUR::Source>, std::allocator<std::weak_ptr<ARDOUR::Source> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::weak_ptr<ARDOUR::Source>, std::allocator<std::weak_ptr<ARDOUR::Source> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::weak_ptr<ARDOUR::Source>, std::allocator<std::weak_ptr<ARDOUR::Source> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::weak_ptr<ARDOUR::Source>, std::allocator<std::weak_ptr<ARDOUR::Source> > >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::weak_ptr<ARDOUR::Source>, std::allocator<std::weak_ptr<ARDOUR::Source> > >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::weak_ptr<ARDOUR::Source>, std::allocator<std::weak_ptr<ARDOUR::Source> > >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::weak_ptr<ARDOUR::Source>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2392:47:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2001 | 
      |                                                              
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                             
 2010 | 
      |                                                              
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2038 | 
      |                                                              
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2043 | 
      |                                                              
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2072 | 
      |                                                              
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2080 | 
      |                                                              
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2089 | 
      |                                                              
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2098 | 
      |                                                              
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2104 | 
      |                                                              
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2122 | 
      |                                                              
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2133 | 
      |                                                              
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2138 | 
      |                                                              
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2141 | 
      |                                                              
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2145 | 
      |                                                              
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2151 | 
      |                                                              
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2158 | 
      |                                                              
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2163 | 
      |                                                              
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2167 | 
      |                                                              
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2172 | 
      |                                                              
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2179 | 
      |                                                              
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2208 | 
      |                                                              
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2211 | 
      |                                                              
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2214 | 
      |                                                              
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2218 | 
      |                                                              
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2221 | 
      |                                                              
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2224 | 
      |                                                              
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2227 | 
      |                                                              
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                       
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2235 | 
      |                                                              
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2240 | 
      |                                                              
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2244 | 
      |                                                              
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2247 | 
      |                                                              
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2251 | 
      |                                                              
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2255 | 
      |                                                              
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2259 | 
      |                                                              
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2263 | 
      |                                                              
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2267 | 
      |                                                              
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2272 | 
      |                                                              
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2278 | 
      |                                                              
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2283 | 
      |                                                              
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2288 | 
      |                                                              
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2292 | 
      |                                                              
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2296 | 
      |                                                              
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2300 | 
      |                                                              
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2304 | 
      |                                                              
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2308 | 
      |                                                              
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2312 | 
      |                                                              
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2316 | 
      |                                                              
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2320 | 
      |                                                              
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2324 | 
      |                                                              
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2328 | 
      |                                                              
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2332 | 
      |                                                              
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2338 | 
      |                                                              
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2342 | 
      |                                                              
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2346 | 
      |                                                              
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2350 | 
      |                                                              
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2354 | 
      |                                                              
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2357 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2358 | 
      |                                                              
 2359 |                 .beginConstStdCPtrList <Location> ("LocationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2360 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2361 | 
      |                                                              
 2362 |                 .beginConstStdVector <Evoral::Parameter> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2363 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2364 | 
      |                                                              
 2365 |                 .beginStdList <std::shared_ptr<AutomationControl> > ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2366 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2367 | 
      |                                                              
 2368 |                 .beginPtrStdList <std::shared_ptr<AutomationControl> > ("ControlListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2369 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <AutomationControl> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2370 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2371 | 
      |                                                              
 2372 |                 .beginStdList <std::shared_ptr<Evoral::Note<Temporal::Beats> > > ("NotePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2373 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2374 | 
      |                                                              
 2375 |                 .beginStdList <std::shared_ptr<Evoral::Event<Temporal::Beats> > > ("EventPtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2376 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2377 | 
      |                                                              
 2378 |                 .beginStdList <std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > > ("PatchChangePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2379 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2380 | 
      |                                                              
 2381 |                 .beginConstStdCPtrList <Evoral::ControlEvent> ("EventList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2382 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2383 | 
      |                                                              
 2384 | #if 0  // depends on Evoal:: Note, Beats see note_fixer.h
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2385 |         // typedef Evoral::Note<Temporal::Beats> Note
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2386 |         // std::set< std::weak_ptr<Note> >
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2387 |                 .beginStdSet <std::weak_ptr<Note> > ("WeakNoteSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2388 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2389 | #endif
      | ~~~~~~                                                       
 2390 | 
      |                                                              
 2391 |         // std::list<std::weak_ptr<Source> >
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2392 |                 .beginConstStdList <std::weak_ptr<Source> > ("WeakSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::weak_ptr<ARDOUR::Source>, std::allocator<std::weak_ptr<ARDOUR::Source> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<const ARDOUR::AudioBackendInfo*>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<const ARDOUR::AudioBackendInfo*>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<const ARDOUR::AudioBackendInfo*>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<const ARDOUR::AudioBackendInfo*>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<const ARDOUR::AudioBackendInfo*>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<const ARDOUR::AudioBackendInfo*>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2083:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginConstStdVector(const char*) [with T = const ARDOUR::AudioBackendInfo*]'
 2082 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2083 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2895:50:   required from here
 2890 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2891 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2892 |                 .beginClass <AudioBackendInfo> ("AudioBackendInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2893 |                 .addData ("name", &AudioBackendInfo::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2894 |                 .endClass()
      |                 ~~~~~~~~~~~                                     
 2895 |                 .beginConstStdVector <const AudioBackendInfo*> ("BackendVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<const ARDOUR::AudioBackendInfo*>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<ARDOUR::AudioBackend::DeviceStatus>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<ARDOUR::AudioBackend::DeviceStatus>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<ARDOUR::AudioBackend::DeviceStatus>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::vector<ARDOUR::AudioBackend::DeviceStatus>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::vector<ARDOUR::AudioBackend::DeviceStatus>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::vector<ARDOUR::AudioBackend::DeviceStatus>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2097:27:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = ARDOUR::AudioBackend::DeviceStatus]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2901:48:   required from here
 2890 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2891 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2892 |                 .beginClass <AudioBackendInfo> ("AudioBackendInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2893 |                 .addData ("name", &AudioBackendInfo::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2894 |                 .endClass()
      |                 ~~~~~~~~~~~                                   
 2895 |                 .beginConstStdVector <const AudioBackendInfo*> ("BackendVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2896 | 
      |                                                               
 2897 |                 .beginClass <AudioBackend::DeviceStatus> ("DeviceStatus")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2898 |                 .addData ("name", &AudioBackend::DeviceStatus::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2899 |                 .addData ("available", &AudioBackend::DeviceStatus::available)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2900 |                 .endClass()
      |                 ~~~~~~~~~~~                                   
 2901 |                 .beginStdVector <AudioBackend::DeviceStatus> ("DeviceStatusVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<ARDOUR::AudioBackend::DeviceStatus>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::__cxx11::basic_string<char> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::__cxx11::basic_string<char> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::__cxx11::basic_string<char> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::__cxx11::basic_string<char> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::__cxx11::basic_string<char> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::__cxx11::basic_string<char> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::__cxx11::basic_string<char>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2024:33:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginStdList(const char*) [with T = std::__cxx11::basic_string<char>]'
 2024 |     return beginConstStdList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:453:31:   required from here
  451 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  452 |                 .beginNamespace ("C")
      |                 ~~~~~~~~~~~~~~~~~~~~~        
  453 |                 .beginStdList <std::string> ("StringList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::__cxx11::basic_string<char> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<long int>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<long int>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<long int>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<long int>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<long int>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<long int>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = long int]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2024:33:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginStdList(const char*) [with T = long int]'
 2024 |     return beginConstStdList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:476:27:   required from here
  451 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  452 |                 .beginNamespace ("C")
      |                 ~~~~~~~~~~~~~~~~~~~~~    
  453 |                 .beginStdList <std::string> ("StringList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  454 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
  455 | 
      |                                          
  456 |                 .beginStdVector <std::string> ("StringVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  457 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
  458 | 
      |                                          
  459 |                 .beginStdVector <float> ("FloatVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  460 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
  461 | 
      |                                          
  462 |                 .beginStdVector <uint8_t> ("ByteVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  463 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
  464 | 
      |                                          
  465 |                 .beginStdVector <int32_t> ("IntVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  466 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
  467 | 
      |                                          
  468 |                 .beginStdVector <float*> ("FloatArrayVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  469 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
  470 | 
      |                                          
  471 |                 .registerArray <uint8_t> ("ByteArray")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  472 |                 .registerArray <float> ("FloatArray")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  473 |                 .registerArray <int32_t> ("IntArray")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  474 | 
      |                                          
  475 |                 // samplepos_t, sampleoffset_t lists e.g. AnalysisFeatureList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  476 |                 .beginStdList <int64_t> ("Int64List")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<long int>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::MPControl<float> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::MPControl<float> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::MPControl<float> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::MPControl<float> >; T = std::shared_ptr<ARDOUR::MPControl<float> >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MPControl<float> >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MPControl<float> >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = PBD::Controllable; R = ARDOUR::MPControl<float>; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MPControl<float>; T = PBD::Controllable]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:547:31:   required from here
  486 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  487 |                 .beginNamespace ("PBD")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~      
  488 | 
      |                                              
  489 |                 .addFunction ("open_uri", (bool (*) (const std::string&))&PBD::open_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  490 |                 .addFunction ("open_uri", &PBD::open_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  491 | 
      |                                              
  492 |                 .beginClass <PBD::ID> ("ID")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  493 |                 .addConstructor <void (*) (std::string)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  494 |                 .addFunction ("to_s", &PBD::ID::to_s) // TODO special case LUA __tostring ?
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  495 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  496 | 
      |                                              
  497 |                 .beginStdVector <PBD::ID> ("IdVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  498 | 
      |                                              
  499 |                 .beginClass <XMLNode> ("XMLNode")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  500 |                 .addFunction ("name", &XMLNode::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  501 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  502 | 
      |                                              
  503 |                 .beginClass <PBD::Progress> ("Progress")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  504 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  505 | 
      |                                              
  506 |                 .beginClass <PBD::Stateful> ("Stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  507 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  508 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  509 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  510 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  511 | 
      |                                              
  512 |                 .beginWSPtrClass <PBD::Stateful> ("StatefulPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  513 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  514 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  515 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  516 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  517 | 
      |                                              
  518 |                 .deriveClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  519 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  520 | 
      |                                              
  521 |                 .deriveClass <PBD::Configuration, PBD::Stateful> ("Configuration")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  522 |                 .endClass()
      |                 ~~~~~~~~~~~                  
  523 | 
      |                                              
  524 |                 .deriveWSPtrClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructiblePtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  525 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  526 | 
      |                                              
  527 |                 .deriveClass <PBD::Command, PBD::StatefulDestructible> ("Command")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  528 |                 .addFunction ("set_name", &PBD::Command::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  529 |                 .addFunction ("name", &PBD::Command::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  530 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  531 | 
      |                                              
  532 |                 /* UndoTransaction::add_command() subscribes to DropReferences()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  533 |                  * and deletes the object.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~   
  534 |                  *
      |                  ~                           
  535 |                  * This object cannot be constructed by lua because lua would manage lifetime
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  536 |                  * and delete the object leading to a double free.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  537 |                  *
      |                  ~                           
  538 |                  * use Session::add_stateful_diff_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  539 |                  * and Session::abort_reversible_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  540 |                  */
      |                  ~~                          
  541 |                 .deriveClass <PBD::StatefulDiffCommand, PBD::Command> ("StatefulDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  542 |                 .addFunction ("undo", &PBD::StatefulDiffCommand::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  543 |                 .addFunction ("empty", &PBD::StatefulDiffCommand::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  544 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  545 | 
      |                                              
  546 |                 .deriveWSPtrClass <PBD::Controllable, PBD::StatefulDestructible> ("Controllable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  547 |                 .addCast<MPControl<gain_t>> ("to_mpgain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::MPControl<float> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::MPControl<float> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::MPControl<float> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::MPControl<float> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::MPControl<float> >; T = std::shared_ptr<const ARDOUR::MPControl<float> >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MPControl<float> >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MPControl<float> >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const PBD::Controllable; R = const ARDOUR::MPControl<float>; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MPControl<float>; T = PBD::Controllable]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:547:31:   required from here
  486 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  487 |                 .beginNamespace ("PBD")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~      
  488 | 
      |                                              
  489 |                 .addFunction ("open_uri", (bool (*) (const std::string&))&PBD::open_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  490 |                 .addFunction ("open_uri", &PBD::open_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  491 | 
      |                                              
  492 |                 .beginClass <PBD::ID> ("ID")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  493 |                 .addConstructor <void (*) (std::string)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  494 |                 .addFunction ("to_s", &PBD::ID::to_s) // TODO special case LUA __tostring ?
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  495 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  496 | 
      |                                              
  497 |                 .beginStdVector <PBD::ID> ("IdVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  498 | 
      |                                              
  499 |                 .beginClass <XMLNode> ("XMLNode")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  500 |                 .addFunction ("name", &XMLNode::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  501 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  502 | 
      |                                              
  503 |                 .beginClass <PBD::Progress> ("Progress")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  504 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  505 | 
      |                                              
  506 |                 .beginClass <PBD::Stateful> ("Stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  507 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  508 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  509 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  510 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  511 | 
      |                                              
  512 |                 .beginWSPtrClass <PBD::Stateful> ("StatefulPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  513 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  514 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  515 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  516 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  517 | 
      |                                              
  518 |                 .deriveClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  519 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  520 | 
      |                                              
  521 |                 .deriveClass <PBD::Configuration, PBD::Stateful> ("Configuration")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  522 |                 .endClass()
      |                 ~~~~~~~~~~~                  
  523 | 
      |                                              
  524 |                 .deriveWSPtrClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructiblePtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  525 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  526 | 
      |                                              
  527 |                 .deriveClass <PBD::Command, PBD::StatefulDestructible> ("Command")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  528 |                 .addFunction ("set_name", &PBD::Command::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  529 |                 .addFunction ("name", &PBD::Command::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  530 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  531 | 
      |                                              
  532 |                 /* UndoTransaction::add_command() subscribes to DropReferences()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  533 |                  * and deletes the object.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~   
  534 |                  *
      |                  ~                           
  535 |                  * This object cannot be constructed by lua because lua would manage lifetime
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  536 |                  * and delete the object leading to a double free.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  537 |                  *
      |                  ~                           
  538 |                  * use Session::add_stateful_diff_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  539 |                  * and Session::abort_reversible_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  540 |                  */
      |                  ~~                          
  541 |                 .deriveClass <PBD::StatefulDiffCommand, PBD::Command> ("StatefulDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  542 |                 .addFunction ("undo", &PBD::StatefulDiffCommand::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  543 |                 .addFunction ("empty", &PBD::StatefulDiffCommand::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  544 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  545 | 
      |                                              
  546 |                 .deriveWSPtrClass <PBD::Controllable, PBD::StatefulDestructible> ("Controllable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  547 |                 .addCast<MPControl<gain_t>> ("to_mpgain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::MPControl<float> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::MPControl<bool> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::MPControl<bool> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::MPControl<bool> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::MPControl<bool> >; T = std::shared_ptr<ARDOUR::MPControl<bool> >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MPControl<bool> >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MPControl<bool> >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = PBD::Controllable; R = ARDOUR::MPControl<bool>; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MPControl<bool>; T = PBD::Controllable]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:548:29:   required from here
  486 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  487 |                 .beginNamespace ("PBD")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~    
  488 | 
      |                                            
  489 |                 .addFunction ("open_uri", (bool (*) (const std::string&))&PBD::open_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  490 |                 .addFunction ("open_uri", &PBD::open_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  491 | 
      |                                            
  492 |                 .beginClass <PBD::ID> ("ID")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  493 |                 .addConstructor <void (*) (std::string)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  494 |                 .addFunction ("to_s", &PBD::ID::to_s) // TODO special case LUA __tostring ?
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  495 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  496 | 
      |                                            
  497 |                 .beginStdVector <PBD::ID> ("IdVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  498 | 
      |                                            
  499 |                 .beginClass <XMLNode> ("XMLNode")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  500 |                 .addFunction ("name", &XMLNode::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  501 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  502 | 
      |                                            
  503 |                 .beginClass <PBD::Progress> ("Progress")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  504 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  505 | 
      |                                            
  506 |                 .beginClass <PBD::Stateful> ("Stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  507 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  508 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  509 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  510 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  511 | 
      |                                            
  512 |                 .beginWSPtrClass <PBD::Stateful> ("StatefulPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  513 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  514 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  515 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  516 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  517 | 
      |                                            
  518 |                 .deriveClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  519 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  520 | 
      |                                            
  521 |                 .deriveClass <PBD::Configuration, PBD::Stateful> ("Configuration")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  522 |                 .endClass()
      |                 ~~~~~~~~~~~                
  523 | 
      |                                            
  524 |                 .deriveWSPtrClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructiblePtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  525 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  526 | 
      |                                            
  527 |                 .deriveClass <PBD::Command, PBD::StatefulDestructible> ("Command")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  528 |                 .addFunction ("set_name", &PBD::Command::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  529 |                 .addFunction ("name", &PBD::Command::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  530 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  531 | 
      |                                            
  532 |                 /* UndoTransaction::add_command() subscribes to DropReferences()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  533 |                  * and deletes the object.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~ 
  534 |                  *
      |                  ~                         
  535 |                  * This object cannot be constructed by lua because lua would manage lifetime
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  536 |                  * and delete the object leading to a double free.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  537 |                  *
      |                  ~                         
  538 |                  * use Session::add_stateful_diff_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  539 |                  * and Session::abort_reversible_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  540 |                  */
      |                  ~~                        
  541 |                 .deriveClass <PBD::StatefulDiffCommand, PBD::Command> ("StatefulDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  542 |                 .addFunction ("undo", &PBD::StatefulDiffCommand::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  543 |                 .addFunction ("empty", &PBD::StatefulDiffCommand::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  544 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  545 | 
      |                                            
  546 |                 .deriveWSPtrClass <PBD::Controllable, PBD::StatefulDestructible> ("Controllable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  547 |                 .addCast<MPControl<gain_t>> ("to_mpgain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  548 |                 .addCast<MPControl<bool>> ("to_mptoggle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::MPControl<bool> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::MPControl<bool> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::MPControl<bool> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::MPControl<bool> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::MPControl<bool> >; T = std::shared_ptr<const ARDOUR::MPControl<bool> >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MPControl<bool> >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MPControl<bool> >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const PBD::Controllable; R = const ARDOUR::MPControl<bool>; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MPControl<bool>; T = PBD::Controllable]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:548:29:   required from here
  486 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  487 |                 .beginNamespace ("PBD")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~    
  488 | 
      |                                            
  489 |                 .addFunction ("open_uri", (bool (*) (const std::string&))&PBD::open_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  490 |                 .addFunction ("open_uri", &PBD::open_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  491 | 
      |                                            
  492 |                 .beginClass <PBD::ID> ("ID")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  493 |                 .addConstructor <void (*) (std::string)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  494 |                 .addFunction ("to_s", &PBD::ID::to_s) // TODO special case LUA __tostring ?
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  495 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  496 | 
      |                                            
  497 |                 .beginStdVector <PBD::ID> ("IdVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  498 | 
      |                                            
  499 |                 .beginClass <XMLNode> ("XMLNode")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  500 |                 .addFunction ("name", &XMLNode::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  501 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  502 | 
      |                                            
  503 |                 .beginClass <PBD::Progress> ("Progress")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  504 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  505 | 
      |                                            
  506 |                 .beginClass <PBD::Stateful> ("Stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  507 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  508 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  509 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  510 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  511 | 
      |                                            
  512 |                 .beginWSPtrClass <PBD::Stateful> ("StatefulPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  513 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  514 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  515 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  516 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  517 | 
      |                                            
  518 |                 .deriveClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  519 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  520 | 
      |                                            
  521 |                 .deriveClass <PBD::Configuration, PBD::Stateful> ("Configuration")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  522 |                 .endClass()
      |                 ~~~~~~~~~~~                
  523 | 
      |                                            
  524 |                 .deriveWSPtrClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructiblePtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  525 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  526 | 
      |                                            
  527 |                 .deriveClass <PBD::Command, PBD::StatefulDestructible> ("Command")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  528 |                 .addFunction ("set_name", &PBD::Command::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  529 |                 .addFunction ("name", &PBD::Command::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  530 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  531 | 
      |                                            
  532 |                 /* UndoTransaction::add_command() subscribes to DropReferences()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  533 |                  * and deletes the object.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~ 
  534 |                  *
      |                  ~                         
  535 |                  * This object cannot be constructed by lua because lua would manage lifetime
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  536 |                  * and delete the object leading to a double free.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  537 |                  *
      |                  ~                         
  538 |                  * use Session::add_stateful_diff_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  539 |                  * and Session::abort_reversible_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  540 |                  */
      |                  ~~                        
  541 |                 .deriveClass <PBD::StatefulDiffCommand, PBD::Command> ("StatefulDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  542 |                 .addFunction ("undo", &PBD::StatefulDiffCommand::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  543 |                 .addFunction ("empty", &PBD::StatefulDiffCommand::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  544 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
  545 | 
      |                                            
  546 |                 .deriveWSPtrClass <PBD::Controllable, PBD::StatefulDestructible> ("Controllable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  547 |                 .addCast<MPControl<gain_t>> ("to_mpgain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  548 |                 .addCast<MPControl<bool>> ("to_mptoggle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::MPControl<bool> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::AutomationControl>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::AutomationControl>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::AutomationControl>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::AutomationControl>; T = std::shared_ptr<ARDOUR::AutomationControl>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AutomationControl>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AutomationControl>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = PBD::Controllable; R = ARDOUR::AutomationControl; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AutomationControl; T = PBD::Controllable]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:549:31:   required from here
  486 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  487 |                 .beginNamespace ("PBD")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~      
  488 | 
      |                                              
  489 |                 .addFunction ("open_uri", (bool (*) (const std::string&))&PBD::open_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  490 |                 .addFunction ("open_uri", &PBD::open_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  491 | 
      |                                              
  492 |                 .beginClass <PBD::ID> ("ID")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  493 |                 .addConstructor <void (*) (std::string)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  494 |                 .addFunction ("to_s", &PBD::ID::to_s) // TODO special case LUA __tostring ?
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  495 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  496 | 
      |                                              
  497 |                 .beginStdVector <PBD::ID> ("IdVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  498 | 
      |                                              
  499 |                 .beginClass <XMLNode> ("XMLNode")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  500 |                 .addFunction ("name", &XMLNode::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  501 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  502 | 
      |                                              
  503 |                 .beginClass <PBD::Progress> ("Progress")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  504 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  505 | 
      |                                              
  506 |                 .beginClass <PBD::Stateful> ("Stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  507 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  508 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  509 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  510 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  511 | 
      |                                              
  512 |                 .beginWSPtrClass <PBD::Stateful> ("StatefulPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  513 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  514 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  515 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  516 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  517 | 
      |                                              
  518 |                 .deriveClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  519 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  520 | 
      |                                              
  521 |                 .deriveClass <PBD::Configuration, PBD::Stateful> ("Configuration")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  522 |                 .endClass()
      |                 ~~~~~~~~~~~                  
  523 | 
      |                                              
  524 |                 .deriveWSPtrClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructiblePtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  525 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  526 | 
      |                                              
  527 |                 .deriveClass <PBD::Command, PBD::StatefulDestructible> ("Command")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  528 |                 .addFunction ("set_name", &PBD::Command::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  529 |                 .addFunction ("name", &PBD::Command::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  530 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  531 | 
      |                                              
  532 |                 /* UndoTransaction::add_command() subscribes to DropReferences()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  533 |                  * and deletes the object.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~   
  534 |                  *
      |                  ~                           
  535 |                  * This object cannot be constructed by lua because lua would manage lifetime
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  536 |                  * and delete the object leading to a double free.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  537 |                  *
      |                  ~                           
  538 |                  * use Session::add_stateful_diff_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  539 |                  * and Session::abort_reversible_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  540 |                  */
      |                  ~~                          
  541 |                 .deriveClass <PBD::StatefulDiffCommand, PBD::Command> ("StatefulDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  542 |                 .addFunction ("undo", &PBD::StatefulDiffCommand::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  543 |                 .addFunction ("empty", &PBD::StatefulDiffCommand::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  544 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  545 | 
      |                                              
  546 |                 .deriveWSPtrClass <PBD::Controllable, PBD::StatefulDestructible> ("Controllable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  547 |                 .addCast<MPControl<gain_t>> ("to_mpgain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  548 |                 .addCast<MPControl<bool>> ("to_mptoggle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  549 |                 .addCast<AutomationControl> ("to_automationcontrol")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::AutomationControl>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::AutomationControl>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::AutomationControl>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::AutomationControl>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::AutomationControl>; T = std::shared_ptr<const ARDOUR::AutomationControl>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AutomationControl>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AutomationControl>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const PBD::Controllable; R = const ARDOUR::AutomationControl; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AutomationControl; T = PBD::Controllable]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:549:31:   required from here
  486 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  487 |                 .beginNamespace ("PBD")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~      
  488 | 
      |                                              
  489 |                 .addFunction ("open_uri", (bool (*) (const std::string&))&PBD::open_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  490 |                 .addFunction ("open_uri", &PBD::open_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  491 | 
      |                                              
  492 |                 .beginClass <PBD::ID> ("ID")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  493 |                 .addConstructor <void (*) (std::string)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  494 |                 .addFunction ("to_s", &PBD::ID::to_s) // TODO special case LUA __tostring ?
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  495 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  496 | 
      |                                              
  497 |                 .beginStdVector <PBD::ID> ("IdVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  498 | 
      |                                              
  499 |                 .beginClass <XMLNode> ("XMLNode")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  500 |                 .addFunction ("name", &XMLNode::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  501 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  502 | 
      |                                              
  503 |                 .beginClass <PBD::Progress> ("Progress")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  504 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  505 | 
      |                                              
  506 |                 .beginClass <PBD::Stateful> ("Stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  507 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  508 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  509 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  510 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  511 | 
      |                                              
  512 |                 .beginWSPtrClass <PBD::Stateful> ("StatefulPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  513 |                 .addFunction ("id", &PBD::Stateful::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  514 |                 .addFunction ("properties", &PBD::Stateful::properties)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  515 |                 .addFunction ("clear_changes", &PBD::Stateful::clear_changes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  516 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  517 | 
      |                                              
  518 |                 .deriveClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  519 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  520 | 
      |                                              
  521 |                 .deriveClass <PBD::Configuration, PBD::Stateful> ("Configuration")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  522 |                 .endClass()
      |                 ~~~~~~~~~~~                  
  523 | 
      |                                              
  524 |                 .deriveWSPtrClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructiblePtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  525 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  526 | 
      |                                              
  527 |                 .deriveClass <PBD::Command, PBD::StatefulDestructible> ("Command")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  528 |                 .addFunction ("set_name", &PBD::Command::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  529 |                 .addFunction ("name", &PBD::Command::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  530 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  531 | 
      |                                              
  532 |                 /* UndoTransaction::add_command() subscribes to DropReferences()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  533 |                  * and deletes the object.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~   
  534 |                  *
      |                  ~                           
  535 |                  * This object cannot be constructed by lua because lua would manage lifetime
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  536 |                  * and delete the object leading to a double free.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  537 |                  *
      |                  ~                           
  538 |                  * use Session::add_stateful_diff_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  539 |                  * and Session::abort_reversible_command()
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  540 |                  */
      |                  ~~                          
  541 |                 .deriveClass <PBD::StatefulDiffCommand, PBD::Command> ("StatefulDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  542 |                 .addFunction ("undo", &PBD::StatefulDiffCommand::undo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  543 |                 .addFunction ("empty", &PBD::StatefulDiffCommand::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  544 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
  545 | 
      |                                              
  546 |                 .deriveWSPtrClass <PBD::Controllable, PBD::StatefulDestructible> ("Controllable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  547 |                 .addCast<MPControl<gain_t>> ("to_mpgain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  548 |                 .addCast<MPControl<bool>> ("to_mptoggle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  549 |                 .addCast<AutomationControl> ("to_automationcontrol")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::AutomationControl>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const Temporal::TempoMap>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const Temporal::TempoMap>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const Temporal::TempoMap>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const Temporal::TempoMap>; T = std::shared_ptr<const Temporal::TempoMap>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const Temporal::TempoMap>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const Temporal::TempoMap>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:220:61:   required from 'static int luabridge::CFunc::Call<FnPtr, ReturnType>::f(lua_State*) [with FnPtr = std::shared_ptr<const Temporal::TempoMap> (*)(); ReturnType = std::shared_ptr<const Temporal::TempoMap>; lua_State = lua_State]'
  220 |       Stack <typename FuncTraits <FnPtr>::ReturnType>::push (L, FuncTraits <FnPtr>::call (fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1373:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addStaticFunction(const char*, FP) [with FP = std::shared_ptr<const Temporal::TempoMap> (*)(); T = Temporal::TempoMap]'
 1373 |       lua_pushcclosure (L, &CFunc::Call <FP>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:838:22:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  636 | 
      |                                     
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  638 | 
      |                                     
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  641 | 
      |                                     
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  647 | 
      |                                     
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  673 | 
      |                                     
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 | #endif
      | ~~~~~~                              
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  706 | 
      |                                     
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  709 |                 .addOperator ("__add", CPPOPERATOR(Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::timecnt_t, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  711 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  712 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  713 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  714 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timecnt_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  715 |                 .addStaticFunction ("zero", &Temporal::timecnt_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  716 |                 .addStaticFunction ("max", (Temporal::timecnt_t const & (*)()) &Temporal::timecnt_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717 |                 .addStaticFunction ("from_samples", static_cast<Temporal::timecnt_t(*)(Temporal::samplepos_t)>(&Temporal::timecnt_t::from_samples))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  718 |                 .addStaticFunction ("from_ticks", static_cast<Temporal::timecnt_t(*)(int64_t)>(&Temporal::timecnt_t::from_ticks))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  719 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  720 |                 .addStaticFunction ("from_superclock", static_cast<Temporal::timecnt_t(*)(superclock_t)>(&Temporal::timecnt_t::from_superclock))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                 .addFunction ("superclocks", &Temporal::timecnt_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  722 | #endif
      | ~~~~~~                              
  723 |                 .addFunction ("magnitude", &Temporal::timecnt_t::magnitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  724 |                 .addFunction ("position", &Temporal::timecnt_t::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  725 |                 .addFunction ("set_position", &Temporal::timecnt_t::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  726 |                 .addFunction ("is_positive", &Temporal::timecnt_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  727 |                 .addFunction ("is_negative", &Temporal::timecnt_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  728 |                 .addFunction ("is_zero", &Temporal::timecnt_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  729 |                 .addFunction ("abs", &Temporal::timecnt_t::abs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |                 .addFunction ("time_domain", &Temporal::timecnt_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |                 .addFunction ("set_time_domain", &Temporal::timecnt_t::set_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 .addFunction ("samples", &Temporal::timecnt_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  733 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  734 |                 .addFunction ("beats", &Temporal::timecnt_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  735 |                 .addFunction ("ticks", &Temporal::timecnt_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  736 |                 .addFunction ("str", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  737 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  738 |                 .addFunction ("decrement", &Temporal::timecnt_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  739 |                 .addMetamethod ("__tostring", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  740 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  741 | 
      |                                     
  742 |                 .beginClass <Temporal::BBT_Time> ("BBT_TIME")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  743 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  744 |                 .addData ("bars", &Temporal::BBT_Time::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |                 .addData ("beats", &Temporal::BBT_Time::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |                 .addData ("ticks", &Temporal::BBT_Time::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  747 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Time, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  748 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Time, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  749 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Time, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  750 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  751 |                 .addMetamethod ("__tostring", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  752 |                 // .addStaticData ("ticks_per_beat", &Temporal::ticks_per_beat, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  753 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  754 | 
      |                                     
  755 |                 .deriveClass <Temporal::BBT_Argument, Temporal::BBT_Time> ("BBT_Argument")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  756 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  757 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  758 | 
      |                                     
  759 |                 .beginClass <Temporal::BBT_Offset> ("BBT_Offset")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  760 |                 .addConstructor <void (*) (uint32_t, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  761 |                 .addData ("bars", &Temporal::BBT_Offset::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  762 |                 .addData ("beats", &Temporal::BBT_Offset::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  763 |                 .addData ("ticks", &Temporal::BBT_Offset::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  764 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Offset, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  765 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Offset, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  766 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Offset, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  767 |                 .addOperator ("__add", CPPOPERATOR(Temporal::BBT_Offset, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  768 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::BBT_Offset, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  769 | #if 0
      | ~~~~~                               
  770 |                 .addOperator ("__mul", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  771 |                 .addOperator ("__div", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  772 | #endif
      | ~~~~~~                              
  773 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  774 |                 .addMetamethod ("__tostring", &Temporal::BBT_Offset::str) // XXX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  775 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  776 | 
      |                                     
  777 |                 .beginClass <Temporal::Tempo> ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  778 |                 .addConstructor <void (*) (double, double, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  779 |                 .addFunction ("note_type", &Temporal::Tempo::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  780 |                 .addFunction ("note_types_per_minute",  (double (Temporal::Tempo::*)() const)&Temporal::Tempo::note_types_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  781 |                 .addFunction ("quarter_notes_per_minute", &Temporal::Tempo::quarter_notes_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  782 |                 .addFunction ("samples_per_quarter_note", &Temporal::Tempo::samples_per_quarter_note)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  783 |                 .addFunction ("samples_per_note_type", &Temporal::Tempo::samples_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  784 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  785 |                 .addFunction ("superclocks_per_note_type", (superclock_t (Temporal::Tempo::*)() const)&Temporal::Tempo::superclocks_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  786 | #endif
      | ~~~~~~                              
  787 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  788 | 
      |                                     
  789 |                 .beginClass <Temporal::Meter> ("Meter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  790 |                 .addConstructor <void (*) (double, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  791 |                 .addFunction ("divisions_per_bar", &Temporal::Meter::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  792 |                 .addFunction ("note_value", &Temporal::Meter::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  794 | 
      |                                     
  795 |                 .beginClass <Temporal::Point> ("Point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 |                 .addFunction ("sclock", &Temporal::Point::sclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  797 |                 .addFunction ("beats", &Temporal::Point::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 |                 .addFunction ("sample", &Temporal::Point::sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  799 |                 .addFunction ("bbt", &Temporal::Point::bbt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 |                 .addFunction ("time", &Temporal::Point::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  801 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  802 | 
      |                                     
  803 |                 /* FIXME, direct access to parent class Temporal::Tempo fails here,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  804 |                  * even thought it is access via UserdataPtr at the same address */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .deriveClass <Temporal::TempoPoint, Temporal::Tempo> ("TempoPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addCast<Temporal::Tempo> ("to_tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .addFunction ("quarters_at_sample", &Temporal::TempoPoint::quarters_at_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  809 |                 .addFunction ("time", &Temporal::TempoPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  810 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  811 | 
      |                                     
  812 |                 .deriveClass <Temporal::MeterPoint, Temporal::Meter> ("MeterPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  813 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  815 | 
      |                                     
  816 |                 .beginClass <Temporal::TempoMetric> ("TempoMetric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("tempo", &Temporal::TempoMetric::tempo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("meter", &Temporal::TempoMetric::meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .addFunction ("sample_at", &Temporal::TempoMetric::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  820 |                 .addFunction ("quarters_at", &Temporal::TempoMetric::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  821 |                 .addFunction ("note_type", &Temporal::TempoMetric::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .addFunction ("note_value", &Temporal::TempoMetric::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  823 |                 .addFunction ("divisions_per_bar", &Temporal::TempoMetric::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  824 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  825 | 
      |                                     
  826 |                 .deriveClass <Temporal::TempoMapPoint, Temporal::Point> ("TempoMapPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  827 |                 .addCast<Temporal::TempoMetric> ("to_tempometric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .addFunction ("time", &Temporal::TempoMapPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  829 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  830 | 
      |                                     
  831 |                 .beginStdVector <Temporal::TempoMapPoint> ("TempoMapPoints")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  833 | 
      |                                     
  834 |                 .beginWSPtrClass <Temporal::TempoMap> ("TempoMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  835 |                 /* we cannot use ::fetch or ::use because LuaBridge cannot overload
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  836 |                  * shared_ptr<const T> and shared_ptr<T> in the same class.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                  */
      |                  ~~                 
  838 |                 .addStaticFunction ("read", &Temporal::TempoMap::read)
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const Temporal::TempoMap>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<Temporal::TempoMap>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<Temporal::TempoMap>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<Temporal::TempoMap>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<Temporal::TempoMap>; T = std::shared_ptr<Temporal::TempoMap>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<Temporal::TempoMap>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<Temporal::TempoMap>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:220:61:   required from 'static int luabridge::CFunc::Call<FnPtr, ReturnType>::f(lua_State*) [with FnPtr = std::shared_ptr<Temporal::TempoMap> (*)(); ReturnType = std::shared_ptr<Temporal::TempoMap>; lua_State = lua_State]'
  220 |       Stack <typename FuncTraits <FnPtr>::ReturnType>::push (L, FuncTraits <FnPtr>::call (fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1373:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addStaticFunction(const char*, FP) [with FP = std::shared_ptr<Temporal::TempoMap> (*)(); T = Temporal::TempoMap]'
 1373 |       lua_pushcclosure (L, &CFunc::Call <FP>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:839:22:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  636 | 
      |                                     
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  638 | 
      |                                     
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  641 | 
      |                                     
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  647 | 
      |                                     
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  673 | 
      |                                     
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 | #endif
      | ~~~~~~                              
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  706 | 
      |                                     
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  709 |                 .addOperator ("__add", CPPOPERATOR(Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::timecnt_t, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  711 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  712 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  713 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  714 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timecnt_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  715 |                 .addStaticFunction ("zero", &Temporal::timecnt_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  716 |                 .addStaticFunction ("max", (Temporal::timecnt_t const & (*)()) &Temporal::timecnt_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717 |                 .addStaticFunction ("from_samples", static_cast<Temporal::timecnt_t(*)(Temporal::samplepos_t)>(&Temporal::timecnt_t::from_samples))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  718 |                 .addStaticFunction ("from_ticks", static_cast<Temporal::timecnt_t(*)(int64_t)>(&Temporal::timecnt_t::from_ticks))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  719 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  720 |                 .addStaticFunction ("from_superclock", static_cast<Temporal::timecnt_t(*)(superclock_t)>(&Temporal::timecnt_t::from_superclock))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                 .addFunction ("superclocks", &Temporal::timecnt_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  722 | #endif
      | ~~~~~~                              
  723 |                 .addFunction ("magnitude", &Temporal::timecnt_t::magnitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  724 |                 .addFunction ("position", &Temporal::timecnt_t::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  725 |                 .addFunction ("set_position", &Temporal::timecnt_t::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  726 |                 .addFunction ("is_positive", &Temporal::timecnt_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  727 |                 .addFunction ("is_negative", &Temporal::timecnt_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  728 |                 .addFunction ("is_zero", &Temporal::timecnt_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  729 |                 .addFunction ("abs", &Temporal::timecnt_t::abs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |                 .addFunction ("time_domain", &Temporal::timecnt_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |                 .addFunction ("set_time_domain", &Temporal::timecnt_t::set_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 .addFunction ("samples", &Temporal::timecnt_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  733 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  734 |                 .addFunction ("beats", &Temporal::timecnt_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  735 |                 .addFunction ("ticks", &Temporal::timecnt_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  736 |                 .addFunction ("str", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  737 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  738 |                 .addFunction ("decrement", &Temporal::timecnt_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  739 |                 .addMetamethod ("__tostring", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  740 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  741 | 
      |                                     
  742 |                 .beginClass <Temporal::BBT_Time> ("BBT_TIME")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  743 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  744 |                 .addData ("bars", &Temporal::BBT_Time::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |                 .addData ("beats", &Temporal::BBT_Time::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |                 .addData ("ticks", &Temporal::BBT_Time::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  747 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Time, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  748 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Time, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  749 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Time, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  750 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  751 |                 .addMetamethod ("__tostring", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  752 |                 // .addStaticData ("ticks_per_beat", &Temporal::ticks_per_beat, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  753 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  754 | 
      |                                     
  755 |                 .deriveClass <Temporal::BBT_Argument, Temporal::BBT_Time> ("BBT_Argument")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  756 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  757 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  758 | 
      |                                     
  759 |                 .beginClass <Temporal::BBT_Offset> ("BBT_Offset")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  760 |                 .addConstructor <void (*) (uint32_t, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  761 |                 .addData ("bars", &Temporal::BBT_Offset::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  762 |                 .addData ("beats", &Temporal::BBT_Offset::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  763 |                 .addData ("ticks", &Temporal::BBT_Offset::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  764 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Offset, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  765 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Offset, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  766 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Offset, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  767 |                 .addOperator ("__add", CPPOPERATOR(Temporal::BBT_Offset, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  768 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::BBT_Offset, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  769 | #if 0
      | ~~~~~                               
  770 |                 .addOperator ("__mul", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  771 |                 .addOperator ("__div", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  772 | #endif
      | ~~~~~~                              
  773 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  774 |                 .addMetamethod ("__tostring", &Temporal::BBT_Offset::str) // XXX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  775 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  776 | 
      |                                     
  777 |                 .beginClass <Temporal::Tempo> ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  778 |                 .addConstructor <void (*) (double, double, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  779 |                 .addFunction ("note_type", &Temporal::Tempo::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  780 |                 .addFunction ("note_types_per_minute",  (double (Temporal::Tempo::*)() const)&Temporal::Tempo::note_types_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  781 |                 .addFunction ("quarter_notes_per_minute", &Temporal::Tempo::quarter_notes_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  782 |                 .addFunction ("samples_per_quarter_note", &Temporal::Tempo::samples_per_quarter_note)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  783 |                 .addFunction ("samples_per_note_type", &Temporal::Tempo::samples_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  784 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  785 |                 .addFunction ("superclocks_per_note_type", (superclock_t (Temporal::Tempo::*)() const)&Temporal::Tempo::superclocks_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  786 | #endif
      | ~~~~~~                              
  787 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  788 | 
      |                                     
  789 |                 .beginClass <Temporal::Meter> ("Meter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  790 |                 .addConstructor <void (*) (double, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  791 |                 .addFunction ("divisions_per_bar", &Temporal::Meter::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  792 |                 .addFunction ("note_value", &Temporal::Meter::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  794 | 
      |                                     
  795 |                 .beginClass <Temporal::Point> ("Point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 |                 .addFunction ("sclock", &Temporal::Point::sclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  797 |                 .addFunction ("beats", &Temporal::Point::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 |                 .addFunction ("sample", &Temporal::Point::sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  799 |                 .addFunction ("bbt", &Temporal::Point::bbt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 |                 .addFunction ("time", &Temporal::Point::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  801 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  802 | 
      |                                     
  803 |                 /* FIXME, direct access to parent class Temporal::Tempo fails here,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  804 |                  * even thought it is access via UserdataPtr at the same address */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .deriveClass <Temporal::TempoPoint, Temporal::Tempo> ("TempoPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addCast<Temporal::Tempo> ("to_tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .addFunction ("quarters_at_sample", &Temporal::TempoPoint::quarters_at_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  809 |                 .addFunction ("time", &Temporal::TempoPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  810 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  811 | 
      |                                     
  812 |                 .deriveClass <Temporal::MeterPoint, Temporal::Meter> ("MeterPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  813 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  815 | 
      |                                     
  816 |                 .beginClass <Temporal::TempoMetric> ("TempoMetric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("tempo", &Temporal::TempoMetric::tempo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("meter", &Temporal::TempoMetric::meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .addFunction ("sample_at", &Temporal::TempoMetric::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  820 |                 .addFunction ("quarters_at", &Temporal::TempoMetric::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  821 |                 .addFunction ("note_type", &Temporal::TempoMetric::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .addFunction ("note_value", &Temporal::TempoMetric::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  823 |                 .addFunction ("divisions_per_bar", &Temporal::TempoMetric::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  824 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  825 | 
      |                                     
  826 |                 .deriveClass <Temporal::TempoMapPoint, Temporal::Point> ("TempoMapPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  827 |                 .addCast<Temporal::TempoMetric> ("to_tempometric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .addFunction ("time", &Temporal::TempoMapPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  829 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  830 | 
      |                                     
  831 |                 .beginStdVector <Temporal::TempoMapPoint> ("TempoMapPoints")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
  833 | 
      |                                     
  834 |                 .beginWSPtrClass <Temporal::TempoMap> ("TempoMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  835 |                 /* we cannot use ::fetch or ::use because LuaBridge cannot overload
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  836 |                  * shared_ptr<const T> and shared_ptr<T> in the same class.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                  */
      |                  ~~                 
  838 |                 .addStaticFunction ("read", &Temporal::TempoMap::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .addStaticFunction ("write_copy", &Temporal::TempoMap::write_copy)
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<Temporal::TempoMap>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::AutomationList>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::AutomationList>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::AutomationList>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::AutomationList>; T = std::shared_ptr<ARDOUR::AutomationList>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AutomationList>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AutomationList>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = Evoral::ControlList; R = ARDOUR::AutomationList; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AutomationList; T = Evoral::ControlList]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:926:28:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  636 | 
      |                                           
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  638 | 
      |                                           
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  641 | 
      |                                           
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  647 | 
      |                                           
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  673 | 
      |                                           
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 | #endif
      | ~~~~~~                                    
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  706 | 
      |                                           
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  709 |                 .addOperator ("__add", CPPOPERATOR(Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::timecnt_t, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  711 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  712 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  713 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  714 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timecnt_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  715 |                 .addStaticFunction ("zero", &Temporal::timecnt_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  716 |                 .addStaticFunction ("max", (Temporal::timecnt_t const & (*)()) &Temporal::timecnt_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717 |                 .addStaticFunction ("from_samples", static_cast<Temporal::timecnt_t(*)(Temporal::samplepos_t)>(&Temporal::timecnt_t::from_samples))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  718 |                 .addStaticFunction ("from_ticks", static_cast<Temporal::timecnt_t(*)(int64_t)>(&Temporal::timecnt_t::from_ticks))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  719 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  720 |                 .addStaticFunction ("from_superclock", static_cast<Temporal::timecnt_t(*)(superclock_t)>(&Temporal::timecnt_t::from_superclock))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                 .addFunction ("superclocks", &Temporal::timecnt_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  722 | #endif
      | ~~~~~~                                    
  723 |                 .addFunction ("magnitude", &Temporal::timecnt_t::magnitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  724 |                 .addFunction ("position", &Temporal::timecnt_t::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  725 |                 .addFunction ("set_position", &Temporal::timecnt_t::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  726 |                 .addFunction ("is_positive", &Temporal::timecnt_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  727 |                 .addFunction ("is_negative", &Temporal::timecnt_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  728 |                 .addFunction ("is_zero", &Temporal::timecnt_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  729 |                 .addFunction ("abs", &Temporal::timecnt_t::abs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |                 .addFunction ("time_domain", &Temporal::timecnt_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |                 .addFunction ("set_time_domain", &Temporal::timecnt_t::set_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 .addFunction ("samples", &Temporal::timecnt_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  733 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  734 |                 .addFunction ("beats", &Temporal::timecnt_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  735 |                 .addFunction ("ticks", &Temporal::timecnt_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  736 |                 .addFunction ("str", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  737 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  738 |                 .addFunction ("decrement", &Temporal::timecnt_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  739 |                 .addMetamethod ("__tostring", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  740 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  741 | 
      |                                           
  742 |                 .beginClass <Temporal::BBT_Time> ("BBT_TIME")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  743 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  744 |                 .addData ("bars", &Temporal::BBT_Time::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |                 .addData ("beats", &Temporal::BBT_Time::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |                 .addData ("ticks", &Temporal::BBT_Time::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  747 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Time, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  748 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Time, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  749 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Time, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  750 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  751 |                 .addMetamethod ("__tostring", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  752 |                 // .addStaticData ("ticks_per_beat", &Temporal::ticks_per_beat, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  753 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  754 | 
      |                                           
  755 |                 .deriveClass <Temporal::BBT_Argument, Temporal::BBT_Time> ("BBT_Argument")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  756 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  757 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  758 | 
      |                                           
  759 |                 .beginClass <Temporal::BBT_Offset> ("BBT_Offset")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  760 |                 .addConstructor <void (*) (uint32_t, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  761 |                 .addData ("bars", &Temporal::BBT_Offset::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  762 |                 .addData ("beats", &Temporal::BBT_Offset::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  763 |                 .addData ("ticks", &Temporal::BBT_Offset::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  764 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Offset, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  765 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Offset, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  766 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Offset, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  767 |                 .addOperator ("__add", CPPOPERATOR(Temporal::BBT_Offset, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  768 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::BBT_Offset, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  769 | #if 0
      | ~~~~~                                     
  770 |                 .addOperator ("__mul", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  771 |                 .addOperator ("__div", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  772 | #endif
      | ~~~~~~                                    
  773 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  774 |                 .addMetamethod ("__tostring", &Temporal::BBT_Offset::str) // XXX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  775 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  776 | 
      |                                           
  777 |                 .beginClass <Temporal::Tempo> ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  778 |                 .addConstructor <void (*) (double, double, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  779 |                 .addFunction ("note_type", &Temporal::Tempo::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  780 |                 .addFunction ("note_types_per_minute",  (double (Temporal::Tempo::*)() const)&Temporal::Tempo::note_types_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  781 |                 .addFunction ("quarter_notes_per_minute", &Temporal::Tempo::quarter_notes_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  782 |                 .addFunction ("samples_per_quarter_note", &Temporal::Tempo::samples_per_quarter_note)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  783 |                 .addFunction ("samples_per_note_type", &Temporal::Tempo::samples_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  784 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  785 |                 .addFunction ("superclocks_per_note_type", (superclock_t (Temporal::Tempo::*)() const)&Temporal::Tempo::superclocks_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  786 | #endif
      | ~~~~~~                                    
  787 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  788 | 
      |                                           
  789 |                 .beginClass <Temporal::Meter> ("Meter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  790 |                 .addConstructor <void (*) (double, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  791 |                 .addFunction ("divisions_per_bar", &Temporal::Meter::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  792 |                 .addFunction ("note_value", &Temporal::Meter::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  794 | 
      |                                           
  795 |                 .beginClass <Temporal::Point> ("Point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 |                 .addFunction ("sclock", &Temporal::Point::sclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  797 |                 .addFunction ("beats", &Temporal::Point::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 |                 .addFunction ("sample", &Temporal::Point::sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  799 |                 .addFunction ("bbt", &Temporal::Point::bbt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 |                 .addFunction ("time", &Temporal::Point::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  801 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  802 | 
      |                                           
  803 |                 /* FIXME, direct access to parent class Temporal::Tempo fails here,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  804 |                  * even thought it is access via UserdataPtr at the same address */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .deriveClass <Temporal::TempoPoint, Temporal::Tempo> ("TempoPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addCast<Temporal::Tempo> ("to_tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .addFunction ("quarters_at_sample", &Temporal::TempoPoint::quarters_at_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  809 |                 .addFunction ("time", &Temporal::TempoPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  810 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  811 | 
      |                                           
  812 |                 .deriveClass <Temporal::MeterPoint, Temporal::Meter> ("MeterPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  813 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  815 | 
      |                                           
  816 |                 .beginClass <Temporal::TempoMetric> ("TempoMetric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("tempo", &Temporal::TempoMetric::tempo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("meter", &Temporal::TempoMetric::meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .addFunction ("sample_at", &Temporal::TempoMetric::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  820 |                 .addFunction ("quarters_at", &Temporal::TempoMetric::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  821 |                 .addFunction ("note_type", &Temporal::TempoMetric::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .addFunction ("note_value", &Temporal::TempoMetric::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  823 |                 .addFunction ("divisions_per_bar", &Temporal::TempoMetric::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  824 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  825 | 
      |                                           
  826 |                 .deriveClass <Temporal::TempoMapPoint, Temporal::Point> ("TempoMapPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  827 |                 .addCast<Temporal::TempoMetric> ("to_tempometric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .addFunction ("time", &Temporal::TempoMapPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  829 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  830 | 
      |                                           
  831 |                 .beginStdVector <Temporal::TempoMapPoint> ("TempoMapPoints")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  833 | 
      |                                           
  834 |                 .beginWSPtrClass <Temporal::TempoMap> ("TempoMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  835 |                 /* we cannot use ::fetch or ::use because LuaBridge cannot overload
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  836 |                  * shared_ptr<const T> and shared_ptr<T> in the same class.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                  */
      |                  ~~                       
  838 |                 .addStaticFunction ("read", &Temporal::TempoMap::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .addStaticFunction ("write_copy", &Temporal::TempoMap::write_copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  840 |                 .addStaticFunction ("update", &Temporal::TempoMap::update)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  841 |                 .addStaticFunction ("abort_update", &Temporal::TempoMap::abort_update)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .addFunction ("set_tempo", (Temporal::TempoPoint& (Temporal::TempoMap::*)(Temporal::Tempo const &,Temporal::timepos_t const &)) &Temporal::TempoMap::set_tempo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  843 |                 .addFunction ("set_meter", (Temporal::MeterPoint& (Temporal::TempoMap::*)(Temporal::Meter const &,Temporal::timepos_t const &)) &Temporal::TempoMap::set_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  844 |                 .addFunction ("set_ramped", &Temporal::TempoMap::set_ramped)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addFunction ("set_continuing", &Temporal::TempoMap::set_continuing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 | 
      |                                           
  847 |                 .addFunction ("tempo_at", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  848 |                 .addFunction ("tempo_at_bbt", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  849 |                 .addFunction ("tempo_at_beats", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  850 | 
      |                                           
  851 |                 .addFunction ("meter_at", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  852 |                 .addFunction ("meter_at_bbt", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  853 |                 .addFunction ("meter_at_beats", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 | 
      |                                           
  855 |                 .addFunction ("bbt_at", (Temporal::BBT_Argument (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::bbt_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  856 |                 .addFunction ("bbt_at_beats", (Temporal::BBT_Argument (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::bbt_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  857 | 
      |                                           
  858 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  859 |                 .addFunction ("tempo_at_sc", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(superclock_t) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("meter_at_sc", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(superclock_t) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("superclock_at", (superclock_t (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("superclock_at_bbt", (superclock_t (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .addFunction ("superclock_at_beats", (superclock_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  864 | #endif
      | ~~~~~~                                    
  865 | 
      |                                           
  866 |                 .addFunction ("quarters_at", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("quarters_at_bbt", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("quarters_at_sample", &Temporal::TempoMap::quarters_at_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 | 
      |                                           
  870 |                 .addFunction ("sample_at", (samplepos_t (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .addFunction ("sample_at_bbt", (samplepos_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  872 |                 .addFunction ("sample_at_beats", (samplepos_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  873 | 
      |                                           
  874 |                 .addFunction ("bbt_duration_at", &Temporal::TempoMap::bbt_duration_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  875 |                 .addFunction ("bbtwalk_to_quarters", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::Beats const &, Temporal::BBT_Offset const &) const) &Temporal::TempoMap::bbtwalk_to_quarters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  876 |                 .addFunction ("bbtwalk_to_quarters_bbt", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::BBT_Argument const &, Temporal::BBT_Offset const &) const) &Temporal::TempoMap::bbtwalk_to_quarters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 | 
      |                                           
  878 |                 .addFunction ("convert_duration", &Temporal::TempoMap::convert_duration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("bbt_walk", &Temporal::TempoMap::bbt_walk)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  880 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  881 |                 .addRefFunction ("grid", &Temporal::TempoMap::grid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  882 | #endif
      | ~~~~~~                                    
  883 | 
      |                                           
  884 |                 .addFunction ("quarters_per_minute_at", &Temporal::TempoMap::quarters_per_minute_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  885 |                 .addFunction ("round_to_bar", &Temporal::TempoMap::round_to_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  886 |                 .addRefFunction ("midi_clock_beat_at_or_after", &Temporal::TempoMap::midi_clock_beat_at_or_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  888 | 
      |                                           
  889 |                 /* libtemporal enums */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~   
  890 |                 .beginNamespace ("TimeDomain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  891 |                 .addConst ("AudioTime", Temporal::AudioTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  892 |                 .addConst ("BeatTime", Temporal::BeatTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  893 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~          
  894 | 
      |                                           
  895 |                 .beginNamespace ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~ 
  896 |                 .beginNamespace ("Type")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~  
  897 |                 .addConst ("Ramp", Temporal::Tempo::Type(Temporal::Tempo::Ramped))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  898 |                 .addConst ("Constant", Temporal::Tempo::Type(Temporal::Tempo::Constant))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  899 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~          
  900 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~          
  901 | 
      |                                           
  902 |                 .endNamespace () /* end of Temporal namespace */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  903 | 
      |                                           
  904 |                 .beginNamespace ("Evoral")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
  905 |                 .beginClass <Evoral::Event<samplepos_t> > ("Event")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  906 |                 .addFunction ("clear", &Evoral::Event<samplepos_t>::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  907 |                 .addFunction ("size", &Evoral::Event<samplepos_t>::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  908 |                 .addFunction ("set_buffer", &Evoral::Event<samplepos_t>::set_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  909 |                 .addFunction ("buffer", (uint8_t*(Evoral::Event<samplepos_t>::*)())&Evoral::Event<samplepos_t>::buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  910 |                 .addFunction ("time", (samplepos_t (Evoral::Event<samplepos_t>::*)())&Evoral::Event<samplepos_t>::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  911 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  912 | 
      |                                           
  913 |                 .beginClass <Evoral::Parameter> ("Parameter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  914 |                 .addConstructor <void (*) (uint32_t, uint8_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  915 |                 .addFunction ("type", &Evoral::Parameter::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  916 |                 .addFunction ("channel", &Evoral::Parameter::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  917 |                 .addFunction ("id", &Evoral::Parameter::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  918 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  919 | 
      |                                           
  920 |                 .beginClass <Evoral::ControlEvent> ("ControlEvent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  921 |                 .addData ("when", &Evoral::ControlEvent::when)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  922 |                 .addData ("value", &Evoral::ControlEvent::value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  923 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  924 | 
      |                                           
  925 |                 .beginWSPtrClass <Evoral::ControlList> ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  926 |                 .addCast<AutomationList> ("to_automationlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::AutomationList>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::AutomationList>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::AutomationList>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::AutomationList>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::AutomationList>; T = std::shared_ptr<const ARDOUR::AutomationList>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AutomationList>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AutomationList>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const Evoral::ControlList; R = const ARDOUR::AutomationList; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AutomationList; T = Evoral::ControlList]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:926:28:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  636 | 
      |                                           
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  638 | 
      |                                           
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  641 | 
      |                                           
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  647 | 
      |                                           
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  673 | 
      |                                           
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 | #endif
      | ~~~~~~                                    
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  706 | 
      |                                           
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  709 |                 .addOperator ("__add", CPPOPERATOR(Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::timecnt_t, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  711 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  712 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  713 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  714 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timecnt_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  715 |                 .addStaticFunction ("zero", &Temporal::timecnt_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  716 |                 .addStaticFunction ("max", (Temporal::timecnt_t const & (*)()) &Temporal::timecnt_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717 |                 .addStaticFunction ("from_samples", static_cast<Temporal::timecnt_t(*)(Temporal::samplepos_t)>(&Temporal::timecnt_t::from_samples))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  718 |                 .addStaticFunction ("from_ticks", static_cast<Temporal::timecnt_t(*)(int64_t)>(&Temporal::timecnt_t::from_ticks))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  719 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  720 |                 .addStaticFunction ("from_superclock", static_cast<Temporal::timecnt_t(*)(superclock_t)>(&Temporal::timecnt_t::from_superclock))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                 .addFunction ("superclocks", &Temporal::timecnt_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  722 | #endif
      | ~~~~~~                                    
  723 |                 .addFunction ("magnitude", &Temporal::timecnt_t::magnitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  724 |                 .addFunction ("position", &Temporal::timecnt_t::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  725 |                 .addFunction ("set_position", &Temporal::timecnt_t::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  726 |                 .addFunction ("is_positive", &Temporal::timecnt_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  727 |                 .addFunction ("is_negative", &Temporal::timecnt_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  728 |                 .addFunction ("is_zero", &Temporal::timecnt_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  729 |                 .addFunction ("abs", &Temporal::timecnt_t::abs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |                 .addFunction ("time_domain", &Temporal::timecnt_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |                 .addFunction ("set_time_domain", &Temporal::timecnt_t::set_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 .addFunction ("samples", &Temporal::timecnt_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  733 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  734 |                 .addFunction ("beats", &Temporal::timecnt_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  735 |                 .addFunction ("ticks", &Temporal::timecnt_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  736 |                 .addFunction ("str", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  737 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  738 |                 .addFunction ("decrement", &Temporal::timecnt_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  739 |                 .addMetamethod ("__tostring", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  740 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  741 | 
      |                                           
  742 |                 .beginClass <Temporal::BBT_Time> ("BBT_TIME")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  743 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  744 |                 .addData ("bars", &Temporal::BBT_Time::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |                 .addData ("beats", &Temporal::BBT_Time::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |                 .addData ("ticks", &Temporal::BBT_Time::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  747 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Time, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  748 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Time, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  749 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Time, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  750 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  751 |                 .addMetamethod ("__tostring", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  752 |                 // .addStaticData ("ticks_per_beat", &Temporal::ticks_per_beat, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  753 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  754 | 
      |                                           
  755 |                 .deriveClass <Temporal::BBT_Argument, Temporal::BBT_Time> ("BBT_Argument")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  756 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  757 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  758 | 
      |                                           
  759 |                 .beginClass <Temporal::BBT_Offset> ("BBT_Offset")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  760 |                 .addConstructor <void (*) (uint32_t, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  761 |                 .addData ("bars", &Temporal::BBT_Offset::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  762 |                 .addData ("beats", &Temporal::BBT_Offset::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  763 |                 .addData ("ticks", &Temporal::BBT_Offset::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  764 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Offset, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  765 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Offset, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  766 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Offset, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  767 |                 .addOperator ("__add", CPPOPERATOR(Temporal::BBT_Offset, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  768 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::BBT_Offset, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  769 | #if 0
      | ~~~~~                                     
  770 |                 .addOperator ("__mul", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  771 |                 .addOperator ("__div", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  772 | #endif
      | ~~~~~~                                    
  773 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  774 |                 .addMetamethod ("__tostring", &Temporal::BBT_Offset::str) // XXX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  775 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  776 | 
      |                                           
  777 |                 .beginClass <Temporal::Tempo> ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  778 |                 .addConstructor <void (*) (double, double, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  779 |                 .addFunction ("note_type", &Temporal::Tempo::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  780 |                 .addFunction ("note_types_per_minute",  (double (Temporal::Tempo::*)() const)&Temporal::Tempo::note_types_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  781 |                 .addFunction ("quarter_notes_per_minute", &Temporal::Tempo::quarter_notes_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  782 |                 .addFunction ("samples_per_quarter_note", &Temporal::Tempo::samples_per_quarter_note)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  783 |                 .addFunction ("samples_per_note_type", &Temporal::Tempo::samples_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  784 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  785 |                 .addFunction ("superclocks_per_note_type", (superclock_t (Temporal::Tempo::*)() const)&Temporal::Tempo::superclocks_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  786 | #endif
      | ~~~~~~                                    
  787 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  788 | 
      |                                           
  789 |                 .beginClass <Temporal::Meter> ("Meter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  790 |                 .addConstructor <void (*) (double, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  791 |                 .addFunction ("divisions_per_bar", &Temporal::Meter::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  792 |                 .addFunction ("note_value", &Temporal::Meter::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  794 | 
      |                                           
  795 |                 .beginClass <Temporal::Point> ("Point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  796 |                 .addFunction ("sclock", &Temporal::Point::sclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  797 |                 .addFunction ("beats", &Temporal::Point::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 |                 .addFunction ("sample", &Temporal::Point::sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  799 |                 .addFunction ("bbt", &Temporal::Point::bbt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 |                 .addFunction ("time", &Temporal::Point::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  801 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  802 | 
      |                                           
  803 |                 /* FIXME, direct access to parent class Temporal::Tempo fails here,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  804 |                  * even thought it is access via UserdataPtr at the same address */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .deriveClass <Temporal::TempoPoint, Temporal::Tempo> ("TempoPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addCast<Temporal::Tempo> ("to_tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  807 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  808 |                 .addFunction ("quarters_at_sample", &Temporal::TempoPoint::quarters_at_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  809 |                 .addFunction ("time", &Temporal::TempoPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  810 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  811 | 
      |                                           
  812 |                 .deriveClass <Temporal::MeterPoint, Temporal::Meter> ("MeterPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  813 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  814 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  815 | 
      |                                           
  816 |                 .beginClass <Temporal::TempoMetric> ("TempoMetric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("tempo", &Temporal::TempoMetric::tempo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("meter", &Temporal::TempoMetric::meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .addFunction ("sample_at", &Temporal::TempoMetric::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  820 |                 .addFunction ("quarters_at", &Temporal::TempoMetric::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  821 |                 .addFunction ("note_type", &Temporal::TempoMetric::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .addFunction ("note_value", &Temporal::TempoMetric::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  823 |                 .addFunction ("divisions_per_bar", &Temporal::TempoMetric::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  824 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  825 | 
      |                                           
  826 |                 .deriveClass <Temporal::TempoMapPoint, Temporal::Point> ("TempoMapPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  827 |                 .addCast<Temporal::TempoMetric> ("to_tempometric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .addFunction ("time", &Temporal::TempoMapPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  829 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  830 | 
      |                                           
  831 |                 .beginStdVector <Temporal::TempoMapPoint> ("TempoMapPoints")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  832 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  833 | 
      |                                           
  834 |                 .beginWSPtrClass <Temporal::TempoMap> ("TempoMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  835 |                 /* we cannot use ::fetch or ::use because LuaBridge cannot overload
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  836 |                  * shared_ptr<const T> and shared_ptr<T> in the same class.
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  837 |                  */
      |                  ~~                       
  838 |                 .addStaticFunction ("read", &Temporal::TempoMap::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  839 |                 .addStaticFunction ("write_copy", &Temporal::TempoMap::write_copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  840 |                 .addStaticFunction ("update", &Temporal::TempoMap::update)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  841 |                 .addStaticFunction ("abort_update", &Temporal::TempoMap::abort_update)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  842 |                 .addFunction ("set_tempo", (Temporal::TempoPoint& (Temporal::TempoMap::*)(Temporal::Tempo const &,Temporal::timepos_t const &)) &Temporal::TempoMap::set_tempo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  843 |                 .addFunction ("set_meter", (Temporal::MeterPoint& (Temporal::TempoMap::*)(Temporal::Meter const &,Temporal::timepos_t const &)) &Temporal::TempoMap::set_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  844 |                 .addFunction ("set_ramped", &Temporal::TempoMap::set_ramped)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  845 |                 .addFunction ("set_continuing", &Temporal::TempoMap::set_continuing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  846 | 
      |                                           
  847 |                 .addFunction ("tempo_at", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  848 |                 .addFunction ("tempo_at_bbt", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  849 |                 .addFunction ("tempo_at_beats", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  850 | 
      |                                           
  851 |                 .addFunction ("meter_at", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  852 |                 .addFunction ("meter_at_bbt", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  853 |                 .addFunction ("meter_at_beats", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  854 | 
      |                                           
  855 |                 .addFunction ("bbt_at", (Temporal::BBT_Argument (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::bbt_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  856 |                 .addFunction ("bbt_at_beats", (Temporal::BBT_Argument (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::bbt_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  857 | 
      |                                           
  858 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  859 |                 .addFunction ("tempo_at_sc", (Temporal::TempoPoint const& (Temporal::TempoMap::*)(superclock_t) const) &Temporal::TempoMap::tempo_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  860 |                 .addFunction ("meter_at_sc", (Temporal::MeterPoint const& (Temporal::TempoMap::*)(superclock_t) const) &Temporal::TempoMap::meter_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  861 |                 .addFunction ("superclock_at", (superclock_t (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  862 |                 .addFunction ("superclock_at_bbt", (superclock_t (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  863 |                 .addFunction ("superclock_at_beats", (superclock_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::superclock_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  864 | #endif
      | ~~~~~~                                    
  865 | 
      |                                           
  866 |                 .addFunction ("quarters_at", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  867 |                 .addFunction ("quarters_at_bbt", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::BBT_Argument const &) const) &Temporal::TempoMap::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  868 |                 .addFunction ("quarters_at_sample", &Temporal::TempoMap::quarters_at_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  869 | 
      |                                           
  870 |                 .addFunction ("sample_at", (samplepos_t (Temporal::TempoMap::*)(Temporal::timepos_t const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  871 |                 .addFunction ("sample_at_bbt", (samplepos_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  872 |                 .addFunction ("sample_at_beats", (samplepos_t (Temporal::TempoMap::*)(Temporal::Beats const &) const) &Temporal::TempoMap::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  873 | 
      |                                           
  874 |                 .addFunction ("bbt_duration_at", &Temporal::TempoMap::bbt_duration_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  875 |                 .addFunction ("bbtwalk_to_quarters", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::Beats const &, Temporal::BBT_Offset const &) const) &Temporal::TempoMap::bbtwalk_to_quarters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  876 |                 .addFunction ("bbtwalk_to_quarters_bbt", (Temporal::Beats (Temporal::TempoMap::*)(Temporal::BBT_Argument const &, Temporal::BBT_Offset const &) const) &Temporal::TempoMap::bbtwalk_to_quarters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  877 | 
      |                                           
  878 |                 .addFunction ("convert_duration", &Temporal::TempoMap::convert_duration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  879 |                 .addFunction ("bbt_walk", &Temporal::TempoMap::bbt_walk)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  880 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  881 |                 .addRefFunction ("grid", &Temporal::TempoMap::grid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  882 | #endif
      | ~~~~~~                                    
  883 | 
      |                                           
  884 |                 .addFunction ("quarters_per_minute_at", &Temporal::TempoMap::quarters_per_minute_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  885 |                 .addFunction ("round_to_bar", &Temporal::TempoMap::round_to_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  886 |                 .addRefFunction ("midi_clock_beat_at_or_after", &Temporal::TempoMap::midi_clock_beat_at_or_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  887 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  888 | 
      |                                           
  889 |                 /* libtemporal enums */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~   
  890 |                 .beginNamespace ("TimeDomain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  891 |                 .addConst ("AudioTime", Temporal::AudioTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  892 |                 .addConst ("BeatTime", Temporal::BeatTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  893 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~          
  894 | 
      |                                           
  895 |                 .beginNamespace ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~ 
  896 |                 .beginNamespace ("Type")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~  
  897 |                 .addConst ("Ramp", Temporal::Tempo::Type(Temporal::Tempo::Ramped))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  898 |                 .addConst ("Constant", Temporal::Tempo::Type(Temporal::Tempo::Constant))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  899 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~          
  900 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~          
  901 | 
      |                                           
  902 |                 .endNamespace () /* end of Temporal namespace */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  903 | 
      |                                           
  904 |                 .beginNamespace ("Evoral")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
  905 |                 .beginClass <Evoral::Event<samplepos_t> > ("Event")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  906 |                 .addFunction ("clear", &Evoral::Event<samplepos_t>::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  907 |                 .addFunction ("size", &Evoral::Event<samplepos_t>::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  908 |                 .addFunction ("set_buffer", &Evoral::Event<samplepos_t>::set_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  909 |                 .addFunction ("buffer", (uint8_t*(Evoral::Event<samplepos_t>::*)())&Evoral::Event<samplepos_t>::buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  910 |                 .addFunction ("time", (samplepos_t (Evoral::Event<samplepos_t>::*)())&Evoral::Event<samplepos_t>::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  911 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  912 | 
      |                                           
  913 |                 .beginClass <Evoral::Parameter> ("Parameter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  914 |                 .addConstructor <void (*) (uint32_t, uint8_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  915 |                 .addFunction ("type", &Evoral::Parameter::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  916 |                 .addFunction ("channel", &Evoral::Parameter::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  917 |                 .addFunction ("id", &Evoral::Parameter::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  918 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  919 | 
      |                                           
  920 |                 .beginClass <Evoral::ControlEvent> ("ControlEvent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  921 |                 .addData ("when", &Evoral::ControlEvent::when)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  922 |                 .addData ("value", &Evoral::ControlEvent::value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  923 |                 .endClass ()
      |                 ~~~~~~~~~~~~              
  924 | 
      |                                           
  925 |                 .beginWSPtrClass <Evoral::ControlList> ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  926 |                 .addCast<AutomationList> ("to_automationlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::AutomationList>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::PluginInfo>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::PluginInfo>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::PluginInfo>; T = std::shared_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:490:22:   required from 'static int luabridge::Namespace::ClassBase::ctorNilPtrPlacementProxy(lua_State*) [with T = std::shared_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  490 |       Stack<T>::push (L, newobject);
      |       ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1392:24:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addNilPtrConstructor() [with T = ARDOUR::PluginInfo]'
 1392 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1393 |           &shared. template ctorNilPtrPlacementProxy <std::shared_ptr<T> >, 0);
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1148:25:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                        
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                        
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                 
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1137 | 
      |                                        
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1146 | 
      |                                        
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::PluginInfo>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::PluginInfo>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::PluginInfo>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::PluginInfo>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::PluginInfo>; T = std::shared_ptr<const ARDOUR::PluginInfo>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::PluginInfo>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::PluginInfo>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:490:22:   required from 'static int luabridge::Namespace::ClassBase::ctorNilPtrPlacementProxy(lua_State*) [with T = std::shared_ptr<const ARDOUR::PluginInfo>; lua_State = lua_State]'
  490 |       Stack<T>::push (L, newobject);
      |       ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1397:24:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addNilPtrConstructor() [with T = ARDOUR::PluginInfo]'
 1397 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1398 |           &shared_const. template ctorNilPtrPlacementProxy <std::shared_ptr<T const> >, 0);
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1148:25:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                        
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                        
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                 
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1137 | 
      |                                        
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1146 | 
      |                                        
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::PluginInfo>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::weak_ptr<ARDOUR::PluginInfo>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::weak_ptr<ARDOUR::PluginInfo>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::weak_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::weak_ptr<ARDOUR::PluginInfo>; T = std::weak_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::weak_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::weak_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:490:22:   required from 'static int luabridge::Namespace::ClassBase::ctorNilPtrPlacementProxy(lua_State*) [with T = std::weak_ptr<ARDOUR::PluginInfo>; lua_State = lua_State]'
  490 |       Stack<T>::push (L, newobject);
      |       ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1404:24:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addNilPtrConstructor() [with T = ARDOUR::PluginInfo]'
 1404 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1405 |           &weak. template ctorNilPtrPlacementProxy <std::weak_ptr<T> >, 0);
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1148:25:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                        
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                        
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                 
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1137 | 
      |                                        
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1146 | 
      |                                        
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::weak_ptr<ARDOUR::PluginInfo>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<PBD::Stateful>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<PBD::Stateful>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<PBD::Stateful>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<PBD::Stateful>; T = std::shared_ptr<PBD::Stateful>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<PBD::Stateful>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<PBD::Stateful>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::AutomationList; R = PBD::Stateful; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = PBD::Stateful; T = ARDOUR::AutomationList]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1215:27:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                          
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                          
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                   
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1137 | 
      |                                          
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1146 | 
      |                                          
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1160 | 
      |                                          
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1166 | 
      |                                          
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1176 | 
      |                                          
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~     
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1193 | 
      |                                          
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                       
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1206 | 
      |                                          
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1210 | 
      |                                          
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1213 | 
      |                                          
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<PBD::Stateful>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const PBD::Stateful>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const PBD::Stateful>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const PBD::Stateful>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const PBD::Stateful>; T = std::shared_ptr<const PBD::Stateful>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const PBD::Stateful>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const PBD::Stateful>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::AutomationList; R = const PBD::Stateful; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = PBD::Stateful; T = ARDOUR::AutomationList]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1215:27:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                          
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                          
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                   
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1137 | 
      |                                          
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1146 | 
      |                                          
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1160 | 
      |                                          
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1166 | 
      |                                          
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1176 | 
      |                                          
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~     
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1193 | 
      |                                          
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                       
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1206 | 
      |                                          
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1210 | 
      |                                          
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1213 | 
      |                                          
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const PBD::Stateful>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<PBD::StatefulDestructible>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<PBD::StatefulDestructible>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<PBD::StatefulDestructible>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<PBD::StatefulDestructible>; T = std::shared_ptr<PBD::StatefulDestructible>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<PBD::StatefulDestructible>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<PBD::StatefulDestructible>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::AutomationList; R = PBD::StatefulDestructible; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = PBD::StatefulDestructible; T = ARDOUR::AutomationList]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1216:39:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1126 | 
      |                                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~               
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1137 | 
      |                                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1146 | 
      |                                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~             
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1160 | 
      |                                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~            
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~               
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                     
 1166 | 
      |                                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~               
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1176 | 
      |                                                      
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~                 
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                     
 1193 | 
      |                                                      
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                                   
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1206 | 
      |                                                      
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1210 | 
      |                                                      
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1213 | 
      |                                                      
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<PBD::StatefulDestructible>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const PBD::StatefulDestructible>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const PBD::StatefulDestructible>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const PBD::StatefulDestructible>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const PBD::StatefulDestructible>; T = std::shared_ptr<const PBD::StatefulDestructible>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const PBD::StatefulDestructible>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const PBD::StatefulDestructible>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::AutomationList; R = const PBD::StatefulDestructible; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = PBD::StatefulDestructible; T = ARDOUR::AutomationList]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1216:39:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1126 | 
      |                                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~               
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1137 | 
      |                                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1146 | 
      |                                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~             
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1160 | 
      |                                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~            
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~               
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                     
 1166 | 
      |                                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~               
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1176 | 
      |                                                      
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~                 
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                     
 1193 | 
      |                                                      
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                                   
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1206 | 
      |                                                      
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1210 | 
      |                                                      
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 1213 | 
      |                                                      
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const PBD::StatefulDestructible>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<Evoral::ControlList>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<Evoral::ControlList>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<Evoral::ControlList>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<Evoral::ControlList>; T = std::shared_ptr<Evoral::ControlList>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<Evoral::ControlList>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<Evoral::ControlList>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::AutomationList; R = Evoral::ControlList; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = Evoral::ControlList; T = ARDOUR::AutomationList]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1217:33:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1126 | 
      |                                                
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                                
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~         
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                         
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1137 | 
      |                                                
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1146 | 
      |                                                
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~       
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1160 | 
      |                                                
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~      
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~         
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~               
 1166 | 
      |                                                
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~         
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1176 | 
      |                                                
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~           
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~               
 1193 | 
      |                                                
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                             
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1206 | 
      |                                                
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1210 | 
      |                                                
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1213 | 
      |                                                
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<Evoral::ControlList>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const Evoral::ControlList>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const Evoral::ControlList>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const Evoral::ControlList>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const Evoral::ControlList>; T = std::shared_ptr<const Evoral::ControlList>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const Evoral::ControlList>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const Evoral::ControlList>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::AutomationList; R = const Evoral::ControlList; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = Evoral::ControlList; T = ARDOUR::AutomationList]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1217:33:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1126 | 
      |                                                
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                                
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~         
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                         
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1137 | 
      |                                                
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1146 | 
      |                                                
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~       
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1160 | 
      |                                                
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~      
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~         
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~               
 1166 | 
      |                                                
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~         
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1176 | 
      |                                                
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~           
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~               
 1193 | 
      |                                                
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                             
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1206 | 
      |                                                
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1210 | 
      |                                                
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 1213 | 
      |                                                
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const Evoral::ControlList>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::MidiPort>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::MidiPort>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::MidiPort>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::MidiPort>; T = std::shared_ptr<ARDOUR::MidiPort>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MidiPort>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MidiPort>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Port; R = ARDOUR::MidiPort; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MidiPort; T = ARDOUR::Port]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1283:22:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                     
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                     
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                              
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1137 | 
      |                                     
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1146 | 
      |                                     
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1160 | 
      |                                     
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~    
 1166 | 
      |                                     
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1176 | 
      |                                     
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~    
 1193 | 
      |                                     
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                  
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1206 | 
      |                                     
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1210 | 
      |                                     
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1213 | 
      |                                     
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1224 | 
      |                                     
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1250 | 
      |                                     
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1267 | 
      |                                     
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1276 | 
      |                                     
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1281 | 
      |                                     
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::MidiPort>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::MidiPort>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::MidiPort>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::MidiPort>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::MidiPort>; T = std::shared_ptr<const ARDOUR::MidiPort>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MidiPort>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MidiPort>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Port; R = const ARDOUR::MidiPort; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MidiPort; T = ARDOUR::Port]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1283:22:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                     
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                     
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                              
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1137 | 
      |                                     
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1146 | 
      |                                     
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1160 | 
      |                                     
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~    
 1166 | 
      |                                     
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1176 | 
      |                                     
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~    
 1193 | 
      |                                     
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                  
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1206 | 
      |                                     
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1210 | 
      |                                     
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1213 | 
      |                                     
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1224 | 
      |                                     
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1250 | 
      |                                     
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1267 | 
      |                                     
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1276 | 
      |                                     
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1281 | 
      |                                     
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::MidiPort>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::AsyncMIDIPort>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::AsyncMIDIPort>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::AsyncMIDIPort>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::AsyncMIDIPort>; T = std::shared_ptr<ARDOUR::AsyncMIDIPort>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AsyncMIDIPort>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AsyncMIDIPort>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Port; R = ARDOUR::AsyncMIDIPort; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AsyncMIDIPort; T = ARDOUR::Port]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1284:27:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                          
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                          
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                   
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1137 | 
      |                                          
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1146 | 
      |                                          
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1160 | 
      |                                          
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1166 | 
      |                                          
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1176 | 
      |                                          
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~     
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1193 | 
      |                                          
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                       
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1206 | 
      |                                          
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1210 | 
      |                                          
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1213 | 
      |                                          
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1224 | 
      |                                          
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1250 | 
      |                                          
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1267 | 
      |                                          
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1276 | 
      |                                          
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1281 | 
      |                                          
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::AsyncMIDIPort>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::AsyncMIDIPort>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::AsyncMIDIPort>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::AsyncMIDIPort>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::AsyncMIDIPort>; T = std::shared_ptr<const ARDOUR::AsyncMIDIPort>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AsyncMIDIPort>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AsyncMIDIPort>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Port; R = const ARDOUR::AsyncMIDIPort; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AsyncMIDIPort; T = ARDOUR::Port]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1284:27:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                          
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                          
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                   
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1137 | 
      |                                          
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1146 | 
      |                                          
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1160 | 
      |                                          
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1166 | 
      |                                          
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1176 | 
      |                                          
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~     
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1193 | 
      |                                          
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                       
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1206 | 
      |                                          
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1210 | 
      |                                          
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1213 | 
      |                                          
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1224 | 
      |                                          
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1250 | 
      |                                          
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1267 | 
      |                                          
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1276 | 
      |                                          
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1281 | 
      |                                          
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::AsyncMIDIPort>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::AudioPort>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::AudioPort>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::AudioPort>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::AudioPort>; T = std::shared_ptr<ARDOUR::AudioPort>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioPort>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioPort>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Port; R = ARDOUR::AudioPort; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AudioPort; T = ARDOUR::Port]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1285:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1137 | 
      |                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1146 | 
      |                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1160 | 
      |                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1166 | 
      |                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1176 | 
      |                                      
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~ 
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1193 | 
      |                                      
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                   
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1206 | 
      |                                      
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1210 | 
      |                                      
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1213 | 
      |                                      
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1224 | 
      |                                      
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1250 | 
      |                                      
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1267 | 
      |                                      
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1276 | 
      |                                      
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1281 | 
      |                                      
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::AudioPort>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::AudioPort>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::AudioPort>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::AudioPort>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::AudioPort>; T = std::shared_ptr<const ARDOUR::AudioPort>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AudioPort>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AudioPort>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Port; R = const ARDOUR::AudioPort; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AudioPort; T = ARDOUR::Port]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1285:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1137 | 
      |                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1146 | 
      |                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1160 | 
      |                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1166 | 
      |                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1176 | 
      |                                      
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~ 
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1193 | 
      |                                      
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                   
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1206 | 
      |                                      
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1210 | 
      |                                      
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1213 | 
      |                                      
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1224 | 
      |                                      
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1250 | 
      |                                      
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1267 | 
      |                                      
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1276 | 
      |                                      
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1281 | 
      |                                      
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::AudioPort>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Route>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Route>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Route>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Route>; T = std::shared_ptr<ARDOUR::Route>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Route>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Route>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Stripable; R = ARDOUR::Route; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::Route; T = ARDOUR::Stripable]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1404:19:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                  
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                  
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                           
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1137 | 
      |                                  
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1146 | 
      |                                  
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1160 | 
      |                                  
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~ 
 1166 | 
      |                                  
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1176 | 
      |                                  
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~ 
 1193 | 
      |                                  
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~               
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1206 | 
      |                                  
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1210 | 
      |                                  
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1213 | 
      |                                  
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1224 | 
      |                                  
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1250 | 
      |                                  
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1267 | 
      |                                  
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1276 | 
      |                                  
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1281 | 
      |                                  
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1302 | 
      |                                  
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1305 | 
      |                                  
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1312 | 
      |                                  
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1316 | 
      |                                  
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1326 | 
      |                                  
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1344 | 
      |                                  
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1349 | 
      |                                  
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1386 | 
      |                                  
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1395 | 
      |                                  
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1402 | 
      |                                  
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Route>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::Route>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::Route>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::Route>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::Route>; T = std::shared_ptr<const ARDOUR::Route>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::Route>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::Route>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Stripable; R = const ARDOUR::Route; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::Route; T = ARDOUR::Stripable]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1404:19:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                  
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                  
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                           
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1137 | 
      |                                  
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1146 | 
      |                                  
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1160 | 
      |                                  
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~ 
 1166 | 
      |                                  
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1176 | 
      |                                  
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~ 
 1193 | 
      |                                  
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~               
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1206 | 
      |                                  
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1210 | 
      |                                  
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1213 | 
      |                                  
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1224 | 
      |                                  
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1250 | 
      |                                  
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1267 | 
      |                                  
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1276 | 
      |                                  
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1281 | 
      |                                  
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1302 | 
      |                                  
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1305 | 
      |                                  
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1312 | 
      |                                  
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1316 | 
      |                                  
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1326 | 
      |                                  
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1344 | 
      |                                  
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1349 | 
      |                                  
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1386 | 
      |                                  
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1395 | 
      |                                  
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1402 | 
      |                                  
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::Route>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::VCA>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::VCA>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::VCA>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::VCA>; T = std::shared_ptr<ARDOUR::VCA>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::VCA>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::VCA>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Stripable; R = ARDOUR::VCA; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::VCA; T = ARDOUR::Stripable]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1405:17:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                         
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1137 | 
      |                                
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1146 | 
      |                                
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1160 | 
      |                                
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                                
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1176 | 
      |                                
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                                
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~             
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1206 | 
      |                                
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1210 | 
      |                                
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1213 | 
      |                                
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1224 | 
      |                                
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1250 | 
      |                                
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1267 | 
      |                                
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1276 | 
      |                                
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1281 | 
      |                                
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1302 | 
      |                                
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1305 | 
      |                                
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1312 | 
      |                                
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1316 | 
      |                                
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1326 | 
      |                                
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1344 | 
      |                                
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1349 | 
      |                                
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1386 | 
      |                                
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1395 | 
      |                                
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1402 | 
      |                                
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::VCA>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::VCA>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::VCA>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::VCA>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::VCA>; T = std::shared_ptr<const ARDOUR::VCA>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::VCA>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::VCA>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Stripable; R = const ARDOUR::VCA; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::VCA; T = ARDOUR::Stripable]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1405:17:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                         
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1137 | 
      |                                
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1146 | 
      |                                
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1160 | 
      |                                
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                                
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1176 | 
      |                                
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                                
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~             
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1206 | 
      |                                
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1210 | 
      |                                
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1213 | 
      |                                
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1224 | 
      |                                
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1250 | 
      |                                
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1267 | 
      |                                
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1276 | 
      |                                
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1281 | 
      |                                
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1302 | 
      |                                
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1305 | 
      |                                
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1312 | 
      |                                
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1316 | 
      |                                
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1326 | 
      |                                
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1344 | 
      |                                
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1349 | 
      |                                
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1386 | 
      |                                
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1395 | 
      |                                
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1402 | 
      |                                
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::VCA>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Slavable>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Slavable>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Slavable>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Slavable>; T = std::shared_ptr<ARDOUR::Slavable>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Slavable>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Slavable>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Stripable; R = ARDOUR::Slavable; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::Slavable; T = ARDOUR::Stripable]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1406:22:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                     
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                     
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                              
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1137 | 
      |                                     
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1146 | 
      |                                     
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1160 | 
      |                                     
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~    
 1166 | 
      |                                     
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1176 | 
      |                                     
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~    
 1193 | 
      |                                     
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                  
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1206 | 
      |                                     
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1210 | 
      |                                     
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1213 | 
      |                                     
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1224 | 
      |                                     
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1250 | 
      |                                     
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1267 | 
      |                                     
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1276 | 
      |                                     
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1281 | 
      |                                     
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1302 | 
      |                                     
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1305 | 
      |                                     
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1312 | 
      |                                     
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1316 | 
      |                                     
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1326 | 
      |                                     
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1344 | 
      |                                     
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1349 | 
      |                                     
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1386 | 
      |                                     
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1395 | 
      |                                     
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1402 | 
      |                                     
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Slavable>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::Slavable>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::Slavable>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::Slavable>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::Slavable>; T = std::shared_ptr<const ARDOUR::Slavable>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::Slavable>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::Slavable>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Stripable; R = const ARDOUR::Slavable; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::Slavable; T = ARDOUR::Stripable]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1406:22:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                     
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                     
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                              
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1137 | 
      |                                     
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1146 | 
      |                                     
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1160 | 
      |                                     
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~    
 1166 | 
      |                                     
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1176 | 
      |                                     
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~    
 1193 | 
      |                                     
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                  
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1206 | 
      |                                     
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1210 | 
      |                                     
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1213 | 
      |                                     
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1224 | 
      |                                     
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1250 | 
      |                                     
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1267 | 
      |                                     
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1276 | 
      |                                     
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1281 | 
      |                                     
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1302 | 
      |                                     
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1305 | 
      |                                     
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1312 | 
      |                                     
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1316 | 
      |                                     
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1326 | 
      |                                     
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1344 | 
      |                                     
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1349 | 
      |                                     
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1386 | 
      |                                     
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1395 | 
      |                                     
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1402 | 
      |                                     
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::Slavable>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Automatable>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Automatable>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Automatable>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Automatable>; T = std::shared_ptr<ARDOUR::Automatable>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Automatable>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Automatable>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Stripable; R = ARDOUR::Automatable; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::Automatable; T = ARDOUR::Stripable]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1407:25:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                        
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                        
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                 
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1137 | 
      |                                        
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1146 | 
      |                                        
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1160 | 
      |                                        
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1166 | 
      |                                        
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1176 | 
      |                                        
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~   
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1193 | 
      |                                        
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                     
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1206 | 
      |                                        
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1210 | 
      |                                        
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1213 | 
      |                                        
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1224 | 
      |                                        
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1250 | 
      |                                        
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1267 | 
      |                                        
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1276 | 
      |                                        
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1281 | 
      |                                        
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1302 | 
      |                                        
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1305 | 
      |                                        
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1312 | 
      |                                        
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1316 | 
      |                                        
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1326 | 
      |                                        
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1344 | 
      |                                        
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1349 | 
      |                                        
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1386 | 
      |                                        
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1395 | 
      |                                        
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1402 | 
      |                                        
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Automatable>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::Automatable>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::Automatable>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::Automatable>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::Automatable>; T = std::shared_ptr<const ARDOUR::Automatable>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::Automatable>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::Automatable>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Stripable; R = const ARDOUR::Automatable; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::Automatable; T = ARDOUR::Stripable]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1407:25:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                        
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                        
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                 
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1137 | 
      |                                        
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1146 | 
      |                                        
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1160 | 
      |                                        
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1166 | 
      |                                        
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1176 | 
      |                                        
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~   
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1193 | 
      |                                        
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                     
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1206 | 
      |                                        
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1210 | 
      |                                        
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1213 | 
      |                                        
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1224 | 
      |                                        
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1250 | 
      |                                        
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1267 | 
      |                                        
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1276 | 
      |                                        
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1281 | 
      |                                        
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1302 | 
      |                                        
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1305 | 
      |                                        
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1312 | 
      |                                        
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1316 | 
      |                                        
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1326 | 
      |                                        
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1344 | 
      |                                        
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1349 | 
      |                                        
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1386 | 
      |                                        
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1395 | 
      |                                        
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1402 | 
      |                                        
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::Automatable>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Track>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Track>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Track>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Track>; T = std::shared_ptr<ARDOUR::Track>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Track>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Track>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Route; R = ARDOUR::Track; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::Track; T = ARDOUR::Route]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1456:19:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                  
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                  
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                           
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1137 | 
      |                                  
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1146 | 
      |                                  
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1160 | 
      |                                  
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~ 
 1166 | 
      |                                  
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1176 | 
      |                                  
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~ 
 1193 | 
      |                                  
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~               
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1206 | 
      |                                  
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1210 | 
      |                                  
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1213 | 
      |                                  
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1224 | 
      |                                  
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1250 | 
      |                                  
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1267 | 
      |                                  
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1276 | 
      |                                  
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1281 | 
      |                                  
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1302 | 
      |                                  
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1305 | 
      |                                  
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1312 | 
      |                                  
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1316 | 
      |                                  
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1326 | 
      |                                  
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1344 | 
      |                                  
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1349 | 
      |                                  
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1386 | 
      |                                  
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1395 | 
      |                                  
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1402 | 
      |                                  
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                  
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1446 | 
      |                                  
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1454 | 
      |                                  
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Track>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::Track>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::Track>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::Track>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::Track>; T = std::shared_ptr<const ARDOUR::Track>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::Track>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::Track>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Route; R = const ARDOUR::Track; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::Track; T = ARDOUR::Route]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1456:19:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                  
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                  
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                           
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1137 | 
      |                                  
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1146 | 
      |                                  
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1160 | 
      |                                  
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~ 
 1166 | 
      |                                  
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1176 | 
      |                                  
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~ 
 1193 | 
      |                                  
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~               
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1206 | 
      |                                  
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1210 | 
      |                                  
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1213 | 
      |                                  
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1224 | 
      |                                  
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1250 | 
      |                                  
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1267 | 
      |                                  
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1276 | 
      |                                  
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1281 | 
      |                                  
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1302 | 
      |                                  
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1305 | 
      |                                  
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1312 | 
      |                                  
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1316 | 
      |                                  
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1326 | 
      |                                  
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1344 | 
      |                                  
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1349 | 
      |                                  
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1386 | 
      |                                  
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1395 | 
      |                                  
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1402 | 
      |                                  
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                  
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1446 | 
      |                                  
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~     
 1454 | 
      |                                  
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::Track>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::AudioPlaylist>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::AudioPlaylist>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::AudioPlaylist>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::AudioPlaylist>; T = std::shared_ptr<ARDOUR::AudioPlaylist>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioPlaylist>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioPlaylist>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Playlist; R = ARDOUR::AudioPlaylist; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AudioPlaylist; T = ARDOUR::Playlist]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1501:27:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                          
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                          
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                   
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1137 | 
      |                                          
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1146 | 
      |                                          
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1160 | 
      |                                          
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1166 | 
      |                                          
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1176 | 
      |                                          
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~     
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1193 | 
      |                                          
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                       
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1206 | 
      |                                          
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1210 | 
      |                                          
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1213 | 
      |                                          
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1224 | 
      |                                          
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1250 | 
      |                                          
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1267 | 
      |                                          
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1276 | 
      |                                          
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1281 | 
      |                                          
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1302 | 
      |                                          
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1305 | 
      |                                          
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1312 | 
      |                                          
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1316 | 
      |                                          
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1326 | 
      |                                          
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1344 | 
      |                                          
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1349 | 
      |                                          
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1386 | 
      |                                          
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1395 | 
      |                                          
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1402 | 
      |                                          
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                          
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1446 | 
      |                                          
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1454 | 
      |                                          
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1499 | 
      |                                          
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::AudioPlaylist>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::AudioPlaylist>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::AudioPlaylist>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::AudioPlaylist>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::AudioPlaylist>; T = std::shared_ptr<const ARDOUR::AudioPlaylist>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AudioPlaylist>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AudioPlaylist>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Playlist; R = const ARDOUR::AudioPlaylist; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AudioPlaylist; T = ARDOUR::Playlist]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1501:27:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                          
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                          
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                   
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1137 | 
      |                                          
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1146 | 
      |                                          
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1160 | 
      |                                          
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1166 | 
      |                                          
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1176 | 
      |                                          
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~     
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1193 | 
      |                                          
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                       
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1206 | 
      |                                          
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1210 | 
      |                                          
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1213 | 
      |                                          
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1224 | 
      |                                          
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1250 | 
      |                                          
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1267 | 
      |                                          
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1276 | 
      |                                          
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1281 | 
      |                                          
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1302 | 
      |                                          
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1305 | 
      |                                          
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1312 | 
      |                                          
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1316 | 
      |                                          
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1326 | 
      |                                          
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1344 | 
      |                                          
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1349 | 
      |                                          
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1386 | 
      |                                          
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1395 | 
      |                                          
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1402 | 
      |                                          
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                          
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1446 | 
      |                                          
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1454 | 
      |                                          
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1499 | 
      |                                          
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::AudioPlaylist>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::MidiPlaylist>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::MidiPlaylist>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::MidiPlaylist>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::MidiPlaylist>; T = std::shared_ptr<ARDOUR::MidiPlaylist>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MidiPlaylist>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MidiPlaylist>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Playlist; R = ARDOUR::MidiPlaylist; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MidiPlaylist; T = ARDOUR::Playlist]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1502:26:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                         
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                         
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                  
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1137 | 
      |                                         
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1146 | 
      |                                         
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1160 | 
      |                                         
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1166 | 
      |                                         
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1176 | 
      |                                         
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~    
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1193 | 
      |                                         
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                      
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1206 | 
      |                                         
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1210 | 
      |                                         
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1213 | 
      |                                         
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1224 | 
      |                                         
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1250 | 
      |                                         
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1267 | 
      |                                         
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1276 | 
      |                                         
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1281 | 
      |                                         
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1302 | 
      |                                         
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1305 | 
      |                                         
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1312 | 
      |                                         
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1316 | 
      |                                         
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1326 | 
      |                                         
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1344 | 
      |                                         
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1349 | 
      |                                         
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1386 | 
      |                                         
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1395 | 
      |                                         
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1402 | 
      |                                         
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                         
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1446 | 
      |                                         
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1454 | 
      |                                         
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1499 | 
      |                                         
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::MidiPlaylist>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::MidiPlaylist>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::MidiPlaylist>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::MidiPlaylist>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::MidiPlaylist>; T = std::shared_ptr<const ARDOUR::MidiPlaylist>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MidiPlaylist>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MidiPlaylist>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Playlist; R = const ARDOUR::MidiPlaylist; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MidiPlaylist; T = ARDOUR::Playlist]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1502:26:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                         
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                         
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                  
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1137 | 
      |                                         
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1146 | 
      |                                         
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1160 | 
      |                                         
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1166 | 
      |                                         
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1176 | 
      |                                         
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~    
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1193 | 
      |                                         
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                      
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1206 | 
      |                                         
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1210 | 
      |                                         
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1213 | 
      |                                         
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1224 | 
      |                                         
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1250 | 
      |                                         
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1267 | 
      |                                         
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1276 | 
      |                                         
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1281 | 
      |                                         
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1302 | 
      |                                         
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1305 | 
      |                                         
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1312 | 
      |                                         
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1316 | 
      |                                         
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1326 | 
      |                                         
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1344 | 
      |                                         
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1349 | 
      |                                         
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1386 | 
      |                                         
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1395 | 
      |                                         
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1402 | 
      |                                         
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                         
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1446 | 
      |                                         
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1454 | 
      |                                         
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1499 | 
      |                                         
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::MidiPlaylist>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::UserBundle>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::UserBundle>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::UserBundle>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::UserBundle>; T = std::shared_ptr<ARDOUR::UserBundle>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::UserBundle>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::UserBundle>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Bundle; R = ARDOUR::UserBundle; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::UserBundle; T = ARDOUR::Bundle]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1545:24:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1137 | 
      |                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1146 | 
      |                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1160 | 
      |                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1166 | 
      |                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1176 | 
      |                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1193 | 
      |                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1206 | 
      |                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1210 | 
      |                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1213 | 
      |                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1224 | 
      |                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1250 | 
      |                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1267 | 
      |                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1276 | 
      |                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1281 | 
      |                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1302 | 
      |                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1305 | 
      |                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1312 | 
      |                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1316 | 
      |                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1326 | 
      |                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1344 | 
      |                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1349 | 
      |                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1386 | 
      |                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1395 | 
      |                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1402 | 
      |                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1446 | 
      |                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1454 | 
      |                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1499 | 
      |                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1543 | 
      |                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::UserBundle>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::UserBundle>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::UserBundle>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::UserBundle>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::UserBundle>; T = std::shared_ptr<const ARDOUR::UserBundle>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::UserBundle>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::UserBundle>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Bundle; R = const ARDOUR::UserBundle; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::UserBundle; T = ARDOUR::Bundle]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1545:24:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1137 | 
      |                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1146 | 
      |                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1160 | 
      |                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1166 | 
      |                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1176 | 
      |                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1193 | 
      |                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1206 | 
      |                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1210 | 
      |                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1213 | 
      |                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1224 | 
      |                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1250 | 
      |                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1267 | 
      |                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1276 | 
      |                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1281 | 
      |                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1302 | 
      |                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1305 | 
      |                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1312 | 
      |                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1316 | 
      |                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1326 | 
      |                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1344 | 
      |                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1349 | 
      |                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1386 | 
      |                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1395 | 
      |                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1402 | 
      |                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1446 | 
      |                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1454 | 
      |                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1499 | 
      |                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1543 | 
      |                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::UserBundle>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::weak_ptr<ARDOUR::Track>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::weak_ptr<ARDOUR::Track>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::weak_ptr<ARDOUR::Track>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::weak_ptr<ARDOUR::Track>; T = std::weak_ptr<ARDOUR::Track>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::weak_ptr<ARDOUR::Track>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::weak_ptr<ARDOUR::Track>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:490:22:   required from 'static int luabridge::Namespace::ClassBase::ctorNilPtrPlacementProxy(lua_State*) [with T = std::weak_ptr<ARDOUR::Track>; lua_State = lua_State]'
  490 |       Stack<T>::push (L, newobject);
      |       ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1404:24:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addNilPtrConstructor() [with T = ARDOUR::Track]'
 1404 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1405 |           &weak. template ctorNilPtrPlacementProxy <std::weak_ptr<T> >, 0);
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1577:25:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                        
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                        
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                 
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1137 | 
      |                                        
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1146 | 
      |                                        
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1160 | 
      |                                        
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1166 | 
      |                                        
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1176 | 
      |                                        
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~   
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1193 | 
      |                                        
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                     
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1206 | 
      |                                        
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1210 | 
      |                                        
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1213 | 
      |                                        
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1224 | 
      |                                        
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1250 | 
      |                                        
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1267 | 
      |                                        
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1276 | 
      |                                        
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1281 | 
      |                                        
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1302 | 
      |                                        
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1305 | 
      |                                        
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1312 | 
      |                                        
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1316 | 
      |                                        
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1326 | 
      |                                        
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1344 | 
      |                                        
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1349 | 
      |                                        
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1386 | 
      |                                        
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1395 | 
      |                                        
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1402 | 
      |                                        
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                        
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1446 | 
      |                                        
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1454 | 
      |                                        
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1499 | 
      |                                        
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                  
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                 
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1543 | 
      |                                        
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1553 | 
      |                                        
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1556 | 
      |                                        
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1560 | 
      |                                        
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1564 | 
      |                                        
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1575 | 
      |                                        
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::weak_ptr<ARDOUR::Track>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::AudioTrack>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::AudioTrack>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::AudioTrack>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::AudioTrack>; T = std::shared_ptr<ARDOUR::AudioTrack>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioTrack>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioTrack>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Track; R = ARDOUR::AudioTrack; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AudioTrack; T = ARDOUR::Track]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1578:24:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1137 | 
      |                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1146 | 
      |                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1160 | 
      |                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1166 | 
      |                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1176 | 
      |                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1193 | 
      |                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1206 | 
      |                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1210 | 
      |                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1213 | 
      |                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1224 | 
      |                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1250 | 
      |                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1267 | 
      |                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1276 | 
      |                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1281 | 
      |                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1302 | 
      |                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1305 | 
      |                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1312 | 
      |                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1316 | 
      |                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1326 | 
      |                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1344 | 
      |                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1349 | 
      |                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1386 | 
      |                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1395 | 
      |                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1402 | 
      |                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1446 | 
      |                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1454 | 
      |                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1499 | 
      |                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1543 | 
      |                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1553 | 
      |                                       
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1556 | 
      |                                       
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1560 | 
      |                                       
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1564 | 
      |                                       
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1575 | 
      |                                       
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::AudioTrack>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::AudioTrack>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::AudioTrack>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::AudioTrack>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::AudioTrack>; T = std::shared_ptr<const ARDOUR::AudioTrack>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AudioTrack>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AudioTrack>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Track; R = const ARDOUR::AudioTrack; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AudioTrack; T = ARDOUR::Track]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1578:24:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1137 | 
      |                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1146 | 
      |                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1160 | 
      |                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1166 | 
      |                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1176 | 
      |                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1193 | 
      |                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1206 | 
      |                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1210 | 
      |                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1213 | 
      |                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1224 | 
      |                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1250 | 
      |                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1267 | 
      |                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1276 | 
      |                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1281 | 
      |                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1302 | 
      |                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1305 | 
      |                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1312 | 
      |                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1316 | 
      |                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1326 | 
      |                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1344 | 
      |                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1349 | 
      |                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1386 | 
      |                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1395 | 
      |                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1402 | 
      |                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1446 | 
      |                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1454 | 
      |                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1499 | 
      |                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1543 | 
      |                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1553 | 
      |                                       
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1556 | 
      |                                       
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1560 | 
      |                                       
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1564 | 
      |                                       
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1575 | 
      |                                       
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::AudioTrack>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::MidiTrack>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::MidiTrack>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::MidiTrack>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::MidiTrack>; T = std::shared_ptr<ARDOUR::MidiTrack>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MidiTrack>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MidiTrack>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Track; R = ARDOUR::MidiTrack; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MidiTrack; T = ARDOUR::Track]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1579:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1137 | 
      |                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1146 | 
      |                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1160 | 
      |                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1166 | 
      |                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1176 | 
      |                                      
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~ 
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1193 | 
      |                                      
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                   
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1206 | 
      |                                      
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1210 | 
      |                                      
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1213 | 
      |                                      
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1224 | 
      |                                      
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1250 | 
      |                                      
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1267 | 
      |                                      
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1276 | 
      |                                      
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1281 | 
      |                                      
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1302 | 
      |                                      
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1305 | 
      |                                      
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1312 | 
      |                                      
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1316 | 
      |                                      
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1326 | 
      |                                      
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1344 | 
      |                                      
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1349 | 
      |                                      
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1386 | 
      |                                      
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1395 | 
      |                                      
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1402 | 
      |                                      
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                      
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1446 | 
      |                                      
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1454 | 
      |                                      
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1499 | 
      |                                      
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                               
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1543 | 
      |                                      
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1553 | 
      |                                      
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1556 | 
      |                                      
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1560 | 
      |                                      
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1564 | 
      |                                      
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1575 | 
      |                                      
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::MidiTrack>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::MidiTrack>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::MidiTrack>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::MidiTrack>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::MidiTrack>; T = std::shared_ptr<const ARDOUR::MidiTrack>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MidiTrack>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MidiTrack>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Track; R = const ARDOUR::MidiTrack; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MidiTrack; T = ARDOUR::Track]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1579:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1137 | 
      |                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1146 | 
      |                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1160 | 
      |                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1166 | 
      |                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1176 | 
      |                                      
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~ 
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1193 | 
      |                                      
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                   
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1206 | 
      |                                      
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1210 | 
      |                                      
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1213 | 
      |                                      
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1224 | 
      |                                      
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1250 | 
      |                                      
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1267 | 
      |                                      
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1276 | 
      |                                      
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1281 | 
      |                                      
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1302 | 
      |                                      
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1305 | 
      |                                      
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1312 | 
      |                                      
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1316 | 
      |                                      
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1326 | 
      |                                      
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1344 | 
      |                                      
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1349 | 
      |                                      
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1386 | 
      |                                      
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1395 | 
      |                                      
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1402 | 
      |                                      
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                      
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1446 | 
      |                                      
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1454 | 
      |                                      
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1499 | 
      |                                      
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                               
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1543 | 
      |                                      
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1553 | 
      |                                      
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1556 | 
      |                                      
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1560 | 
      |                                      
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1564 | 
      |                                      
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1575 | 
      |                                      
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::MidiTrack>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::AudioRom>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::AudioRom>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::AudioRom>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::AudioRom>; T = std::shared_ptr<ARDOUR::AudioRom>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioRom>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioRom>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:220:61:   required from 'static int luabridge::CFunc::Call<FnPtr, ReturnType>::f(lua_State*) [with FnPtr = std::shared_ptr<ARDOUR::AudioRom> (*)(float*, long unsigned int); ReturnType = std::shared_ptr<ARDOUR::AudioRom>; lua_State = lua_State]'
  220 |       Stack <typename FuncTraits <FnPtr>::ReturnType>::push (L, FuncTraits <FnPtr>::call (fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1373:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addStaticFunction(const char*, FP) [with FP = std::shared_ptr<ARDOUR::AudioRom> (*)(float*, long unsigned int); T = ARDOUR::AudioRom]'
 1373 |       lua_pushcclosure (L, &CFunc::Call <FP>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1617:22:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                     
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                     
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                              
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1137 | 
      |                                     
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1146 | 
      |                                     
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1160 | 
      |                                     
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~    
 1166 | 
      |                                     
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1176 | 
      |                                     
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~    
 1193 | 
      |                                     
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                  
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1206 | 
      |                                     
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1210 | 
      |                                     
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1213 | 
      |                                     
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1224 | 
      |                                     
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1250 | 
      |                                     
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1267 | 
      |                                     
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1276 | 
      |                                     
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1281 | 
      |                                     
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1302 | 
      |                                     
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1305 | 
      |                                     
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1312 | 
      |                                     
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1316 | 
      |                                     
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1326 | 
      |                                     
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1344 | 
      |                                     
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1349 | 
      |                                     
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1386 | 
      |                                     
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1395 | 
      |                                     
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1402 | 
      |                                     
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                     
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1446 | 
      |                                     
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1454 | 
      |                                     
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1499 | 
      |                                     
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                               
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                              
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1543 | 
      |                                     
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1553 | 
      |                                     
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1556 | 
      |                                     
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1560 | 
      |                                     
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1564 | 
      |                                     
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1575 | 
      |                                     
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1591 | 
      |                                     
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1594 | 
      |                                     
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1608 | 
      |                                     
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~        
 1615 | 
      |                                     
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::AudioRom>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::MidiRegion>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::MidiRegion>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::MidiRegion>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::MidiRegion>; T = std::shared_ptr<ARDOUR::MidiRegion>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MidiRegion>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MidiRegion>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Region; R = ARDOUR::MidiRegion; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MidiRegion; T = ARDOUR::Region]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1621:24:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1137 | 
      |                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1146 | 
      |                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1160 | 
      |                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1166 | 
      |                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1176 | 
      |                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1193 | 
      |                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1206 | 
      |                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1210 | 
      |                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1213 | 
      |                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1224 | 
      |                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1250 | 
      |                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1267 | 
      |                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1276 | 
      |                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1281 | 
      |                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1302 | 
      |                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1305 | 
      |                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1312 | 
      |                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1316 | 
      |                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1326 | 
      |                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1344 | 
      |                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1349 | 
      |                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1386 | 
      |                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1395 | 
      |                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1402 | 
      |                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1446 | 
      |                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1454 | 
      |                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1499 | 
      |                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1543 | 
      |                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1553 | 
      |                                       
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1556 | 
      |                                       
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1560 | 
      |                                       
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1564 | 
      |                                       
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1575 | 
      |                                       
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1591 | 
      |                                       
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1594 | 
      |                                       
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1608 | 
      |                                       
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1615 | 
      |                                       
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1619 | 
      |                                       
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::MidiRegion>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::MidiRegion>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::MidiRegion>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::MidiRegion>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::MidiRegion>; T = std::shared_ptr<const ARDOUR::MidiRegion>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MidiRegion>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MidiRegion>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Region; R = const ARDOUR::MidiRegion; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MidiRegion; T = ARDOUR::Region]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1621:24:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1137 | 
      |                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1146 | 
      |                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1160 | 
      |                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1166 | 
      |                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1176 | 
      |                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1193 | 
      |                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1206 | 
      |                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1210 | 
      |                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1213 | 
      |                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1224 | 
      |                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1250 | 
      |                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1267 | 
      |                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1276 | 
      |                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1281 | 
      |                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1302 | 
      |                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1305 | 
      |                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1312 | 
      |                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1316 | 
      |                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1326 | 
      |                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1344 | 
      |                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1349 | 
      |                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1386 | 
      |                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1395 | 
      |                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1402 | 
      |                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1446 | 
      |                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1454 | 
      |                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1499 | 
      |                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1543 | 
      |                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1553 | 
      |                                       
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1556 | 
      |                                       
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1560 | 
      |                                       
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1564 | 
      |                                       
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1575 | 
      |                                       
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1591 | 
      |                                       
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1594 | 
      |                                       
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1608 | 
      |                                       
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1615 | 
      |                                       
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1619 | 
      |                                       
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::MidiRegion>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::AudioRegion>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::AudioRegion>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::AudioRegion>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::AudioRegion>; T = std::shared_ptr<ARDOUR::AudioRegion>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioRegion>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioRegion>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Region; R = ARDOUR::AudioRegion; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AudioRegion; T = ARDOUR::Region]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1622:25:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                        
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                        
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                 
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1137 | 
      |                                        
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1146 | 
      |                                        
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1160 | 
      |                                        
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1166 | 
      |                                        
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1176 | 
      |                                        
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~   
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1193 | 
      |                                        
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                     
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1206 | 
      |                                        
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1210 | 
      |                                        
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1213 | 
      |                                        
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1224 | 
      |                                        
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1250 | 
      |                                        
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1267 | 
      |                                        
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1276 | 
      |                                        
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1281 | 
      |                                        
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1302 | 
      |                                        
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1305 | 
      |                                        
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1312 | 
      |                                        
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1316 | 
      |                                        
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1326 | 
      |                                        
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1344 | 
      |                                        
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1349 | 
      |                                        
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1386 | 
      |                                        
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1395 | 
      |                                        
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1402 | 
      |                                        
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                        
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1446 | 
      |                                        
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1454 | 
      |                                        
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1499 | 
      |                                        
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                  
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                 
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1543 | 
      |                                        
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1553 | 
      |                                        
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1556 | 
      |                                        
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1560 | 
      |                                        
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1564 | 
      |                                        
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1575 | 
      |                                        
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1591 | 
      |                                        
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1594 | 
      |                                        
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1608 | 
      |                                        
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1615 | 
      |                                        
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1619 | 
      |                                        
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::AudioRegion>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::AudioRegion>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::AudioRegion>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::AudioRegion>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::AudioRegion>; T = std::shared_ptr<const ARDOUR::AudioRegion>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AudioRegion>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AudioRegion>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Region; R = const ARDOUR::AudioRegion; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AudioRegion; T = ARDOUR::Region]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1622:25:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                        
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                        
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                 
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1137 | 
      |                                        
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1146 | 
      |                                        
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1160 | 
      |                                        
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1166 | 
      |                                        
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1176 | 
      |                                        
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~   
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1193 | 
      |                                        
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                     
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1206 | 
      |                                        
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1210 | 
      |                                        
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1213 | 
      |                                        
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1224 | 
      |                                        
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1250 | 
      |                                        
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1267 | 
      |                                        
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1276 | 
      |                                        
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1281 | 
      |                                        
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1302 | 
      |                                        
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1305 | 
      |                                        
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1312 | 
      |                                        
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1316 | 
      |                                        
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1326 | 
      |                                        
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1344 | 
      |                                        
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1349 | 
      |                                        
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1386 | 
      |                                        
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1395 | 
      |                                        
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1402 | 
      |                                        
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                        
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1446 | 
      |                                        
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1454 | 
      |                                        
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1499 | 
      |                                        
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                  
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                 
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1543 | 
      |                                        
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1553 | 
      |                                        
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1556 | 
      |                                        
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1560 | 
      |                                        
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1564 | 
      |                                        
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1575 | 
      |                                        
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1591 | 
      |                                        
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1594 | 
      |                                        
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1608 | 
      |                                        
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1615 | 
      |                                        
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1619 | 
      |                                        
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::AudioRegion>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::AudioReadable>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::AudioReadable>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::AudioReadable>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::AudioReadable>; T = std::shared_ptr<ARDOUR::AudioReadable>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioReadable>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioReadable>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::AudioRegion; R = ARDOUR::AudioReadable; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AudioReadable; T = ARDOUR::AudioRegion]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1702:27:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                          
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                          
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                   
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1137 | 
      |                                          
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1146 | 
      |                                          
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1160 | 
      |                                          
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1166 | 
      |                                          
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1176 | 
      |                                          
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~     
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1193 | 
      |                                          
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                       
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1206 | 
      |                                          
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1210 | 
      |                                          
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1213 | 
      |                                          
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1224 | 
      |                                          
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1250 | 
      |                                          
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1267 | 
      |                                          
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1276 | 
      |                                          
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1281 | 
      |                                          
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1302 | 
      |                                          
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1305 | 
      |                                          
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1312 | 
      |                                          
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1316 | 
      |                                          
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1326 | 
      |                                          
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1344 | 
      |                                          
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1349 | 
      |                                          
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1386 | 
      |                                          
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1395 | 
      |                                          
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1402 | 
      |                                          
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                          
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1446 | 
      |                                          
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1454 | 
      |                                          
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1499 | 
      |                                          
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                    
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                   
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1543 | 
      |                                          
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1553 | 
      |                                          
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1556 | 
      |                                          
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1560 | 
      |                                          
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1564 | 
      |                                          
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1575 | 
      |                                          
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1591 | 
      |                                          
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1594 | 
      |                                          
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1608 | 
      |                                          
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1615 | 
      |                                          
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1619 | 
      |                                          
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                          
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~         
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                          
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                          
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                   
 1663 | 
      |                                          
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1694 | 
      |                                          
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1700 | 
      |                                          
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::AudioReadable>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::AudioReadable>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::AudioReadable>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::AudioReadable>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::AudioReadable>; T = std::shared_ptr<const ARDOUR::AudioReadable>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AudioReadable>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AudioReadable>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::AudioRegion; R = const ARDOUR::AudioReadable; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AudioReadable; T = ARDOUR::AudioRegion]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1702:27:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                          
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                          
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                   
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1137 | 
      |                                          
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1146 | 
      |                                          
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1160 | 
      |                                          
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1166 | 
      |                                          
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~   
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1176 | 
      |                                          
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~     
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~         
 1193 | 
      |                                          
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                       
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1206 | 
      |                                          
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1210 | 
      |                                          
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1213 | 
      |                                          
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1224 | 
      |                                          
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1250 | 
      |                                          
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1267 | 
      |                                          
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1276 | 
      |                                          
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1281 | 
      |                                          
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1302 | 
      |                                          
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1305 | 
      |                                          
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1312 | 
      |                                          
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1316 | 
      |                                          
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1326 | 
      |                                          
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1344 | 
      |                                          
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1349 | 
      |                                          
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1386 | 
      |                                          
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1395 | 
      |                                          
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1402 | 
      |                                          
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                          
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1446 | 
      |                                          
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1454 | 
      |                                          
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1499 | 
      |                                          
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                    
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                   
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1543 | 
      |                                          
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1553 | 
      |                                          
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1556 | 
      |                                          
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1560 | 
      |                                          
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1564 | 
      |                                          
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1575 | 
      |                                          
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1591 | 
      |                                          
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1594 | 
      |                                          
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1608 | 
      |                                          
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1615 | 
      |                                          
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1619 | 
      |                                          
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                          
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~         
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                          
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                          
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                   
 1663 | 
      |                                          
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~ 
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1694 | 
      |                                          
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~             
 1700 | 
      |                                          
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::AudioReadable>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::AudioSource>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::AudioSource>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::AudioSource>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::AudioSource>; T = std::shared_ptr<ARDOUR::AudioSource>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioSource>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioSource>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Source; R = ARDOUR::AudioSource; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AudioSource; T = ARDOUR::Source]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1726:25:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                        
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                        
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                 
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1137 | 
      |                                        
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1146 | 
      |                                        
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1160 | 
      |                                        
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1166 | 
      |                                        
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1176 | 
      |                                        
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~   
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1193 | 
      |                                        
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                     
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1206 | 
      |                                        
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1210 | 
      |                                        
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1213 | 
      |                                        
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1224 | 
      |                                        
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1250 | 
      |                                        
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1267 | 
      |                                        
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1276 | 
      |                                        
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1281 | 
      |                                        
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1302 | 
      |                                        
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1305 | 
      |                                        
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1312 | 
      |                                        
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1316 | 
      |                                        
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1326 | 
      |                                        
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1344 | 
      |                                        
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1349 | 
      |                                        
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1386 | 
      |                                        
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1395 | 
      |                                        
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1402 | 
      |                                        
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                        
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1446 | 
      |                                        
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1454 | 
      |                                        
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1499 | 
      |                                        
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                  
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                 
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1543 | 
      |                                        
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1553 | 
      |                                        
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1556 | 
      |                                        
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1560 | 
      |                                        
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1564 | 
      |                                        
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1575 | 
      |                                        
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1591 | 
      |                                        
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1594 | 
      |                                        
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1608 | 
      |                                        
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1615 | 
      |                                        
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1619 | 
      |                                        
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                        
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~       
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                        
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                        
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                 
 1663 | 
      |                                        
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1694 | 
      |                                        
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1700 | 
      |                                        
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1724 | 
      |                                        
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::AudioSource>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::AudioSource>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::AudioSource>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::AudioSource>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::AudioSource>; T = std::shared_ptr<const ARDOUR::AudioSource>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AudioSource>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::AudioSource>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Source; R = const ARDOUR::AudioSource; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::AudioSource; T = ARDOUR::Source]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1726:25:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                        
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                        
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                 
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1137 | 
      |                                        
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1146 | 
      |                                        
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1160 | 
      |                                        
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1166 | 
      |                                        
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1176 | 
      |                                        
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~   
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1193 | 
      |                                        
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                     
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1206 | 
      |                                        
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1210 | 
      |                                        
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1213 | 
      |                                        
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1224 | 
      |                                        
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1250 | 
      |                                        
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1267 | 
      |                                        
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1276 | 
      |                                        
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1281 | 
      |                                        
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1302 | 
      |                                        
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1305 | 
      |                                        
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1312 | 
      |                                        
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1316 | 
      |                                        
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1326 | 
      |                                        
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1344 | 
      |                                        
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1349 | 
      |                                        
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1386 | 
      |                                        
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1395 | 
      |                                        
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1402 | 
      |                                        
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                        
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1446 | 
      |                                        
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1454 | 
      |                                        
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1499 | 
      |                                        
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                  
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                 
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1543 | 
      |                                        
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1553 | 
      |                                        
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1556 | 
      |                                        
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1560 | 
      |                                        
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1564 | 
      |                                        
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1575 | 
      |                                        
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1591 | 
      |                                        
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1594 | 
      |                                        
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1608 | 
      |                                        
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1615 | 
      |                                        
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1619 | 
      |                                        
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                        
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~       
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                        
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                        
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                 
 1663 | 
      |                                        
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1694 | 
      |                                        
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1700 | 
      |                                        
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1724 | 
      |                                        
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::AudioSource>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::MidiSource>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::MidiSource>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::MidiSource>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::MidiSource>; T = std::shared_ptr<ARDOUR::MidiSource>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MidiSource>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MidiSource>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Source; R = ARDOUR::MidiSource; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MidiSource; T = ARDOUR::Source]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1727:24:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1137 | 
      |                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1146 | 
      |                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1160 | 
      |                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1166 | 
      |                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1176 | 
      |                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1193 | 
      |                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1206 | 
      |                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1210 | 
      |                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1213 | 
      |                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1224 | 
      |                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1250 | 
      |                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1267 | 
      |                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1276 | 
      |                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1281 | 
      |                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1302 | 
      |                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1305 | 
      |                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1312 | 
      |                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1316 | 
      |                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1326 | 
      |                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1344 | 
      |                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1349 | 
      |                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1386 | 
      |                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1395 | 
      |                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1402 | 
      |                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1446 | 
      |                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1454 | 
      |                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1499 | 
      |                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1543 | 
      |                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1553 | 
      |                                       
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1556 | 
      |                                       
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1560 | 
      |                                       
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1564 | 
      |                                       
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1575 | 
      |                                       
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1591 | 
      |                                       
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1594 | 
      |                                       
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1608 | 
      |                                       
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1615 | 
      |                                       
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1619 | 
      |                                       
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                       
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~      
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                       
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                       
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                
 1663 | 
      |                                       
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1694 | 
      |                                       
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1700 | 
      |                                       
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1724 | 
      |                                       
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::MidiSource>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::MidiSource>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::MidiSource>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::MidiSource>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::MidiSource>; T = std::shared_ptr<const ARDOUR::MidiSource>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MidiSource>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MidiSource>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Source; R = const ARDOUR::MidiSource; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MidiSource; T = ARDOUR::Source]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1727:24:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1137 | 
      |                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1146 | 
      |                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1160 | 
      |                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1166 | 
      |                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1176 | 
      |                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1193 | 
      |                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1206 | 
      |                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1210 | 
      |                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1213 | 
      |                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1224 | 
      |                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1250 | 
      |                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1267 | 
      |                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1276 | 
      |                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1281 | 
      |                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1302 | 
      |                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1305 | 
      |                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1312 | 
      |                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1316 | 
      |                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1326 | 
      |                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1344 | 
      |                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1349 | 
      |                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1386 | 
      |                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1395 | 
      |                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1402 | 
      |                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1446 | 
      |                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1454 | 
      |                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1499 | 
      |                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1543 | 
      |                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1553 | 
      |                                       
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1556 | 
      |                                       
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1560 | 
      |                                       
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1564 | 
      |                                       
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1575 | 
      |                                       
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1591 | 
      |                                       
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1594 | 
      |                                       
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1608 | 
      |                                       
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1615 | 
      |                                       
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1619 | 
      |                                       
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                       
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~      
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                       
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                       
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                
 1663 | 
      |                                       
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1694 | 
      |                                       
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1700 | 
      |                                       
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1724 | 
      |                                       
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::MidiSource>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::FileSource>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::FileSource>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::FileSource>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::FileSource>; T = std::shared_ptr<ARDOUR::FileSource>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::FileSource>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::FileSource>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Source; R = ARDOUR::FileSource; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::FileSource; T = ARDOUR::Source]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1728:24:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1137 | 
      |                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1146 | 
      |                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1160 | 
      |                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1166 | 
      |                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1176 | 
      |                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1193 | 
      |                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1206 | 
      |                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1210 | 
      |                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1213 | 
      |                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1224 | 
      |                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1250 | 
      |                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1267 | 
      |                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1276 | 
      |                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1281 | 
      |                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1302 | 
      |                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1305 | 
      |                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1312 | 
      |                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1316 | 
      |                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1326 | 
      |                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1344 | 
      |                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1349 | 
      |                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1386 | 
      |                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1395 | 
      |                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1402 | 
      |                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1446 | 
      |                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1454 | 
      |                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1499 | 
      |                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1543 | 
      |                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1553 | 
      |                                       
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1556 | 
      |                                       
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1560 | 
      |                                       
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1564 | 
      |                                       
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1575 | 
      |                                       
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1591 | 
      |                                       
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1594 | 
      |                                       
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1608 | 
      |                                       
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1615 | 
      |                                       
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1619 | 
      |                                       
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                       
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~      
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                       
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                       
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                
 1663 | 
      |                                       
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1694 | 
      |                                       
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1700 | 
      |                                       
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1724 | 
      |                                       
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::FileSource>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::FileSource>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::FileSource>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::FileSource>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::FileSource>; T = std::shared_ptr<const ARDOUR::FileSource>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::FileSource>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::FileSource>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Source; R = const ARDOUR::FileSource; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::FileSource; T = ARDOUR::Source]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1728:24:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1137 | 
      |                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1146 | 
      |                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1160 | 
      |                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1166 | 
      |                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1176 | 
      |                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1193 | 
      |                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1206 | 
      |                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1210 | 
      |                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1213 | 
      |                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1224 | 
      |                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1250 | 
      |                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1267 | 
      |                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1276 | 
      |                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1281 | 
      |                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1302 | 
      |                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1305 | 
      |                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1312 | 
      |                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1316 | 
      |                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1326 | 
      |                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1344 | 
      |                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1349 | 
      |                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1386 | 
      |                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1395 | 
      |                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1402 | 
      |                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1446 | 
      |                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1454 | 
      |                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1499 | 
      |                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1543 | 
      |                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1553 | 
      |                                       
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1556 | 
      |                                       
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1560 | 
      |                                       
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1564 | 
      |                                       
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1575 | 
      |                                       
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1591 | 
      |                                       
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1594 | 
      |                                       
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1608 | 
      |                                       
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1615 | 
      |                                       
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1619 | 
      |                                       
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                       
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~      
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                       
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                       
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                
 1663 | 
      |                                       
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1694 | 
      |                                       
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1700 | 
      |                                       
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1724 | 
      |                                       
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::FileSource>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<Evoral::Sequence<Temporal::Beats> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<Evoral::Sequence<Temporal::Beats> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<Evoral::Sequence<Temporal::Beats> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<Evoral::Sequence<Temporal::Beats> >; T = std::shared_ptr<Evoral::Sequence<Temporal::Beats> >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<Evoral::Sequence<Temporal::Beats> >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<Evoral::Sequence<Temporal::Beats> >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::AutomatableSequence<Temporal::Beats>; R = Evoral::Sequence<Temporal::Beats>; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = Evoral::Sequence<Temporal::Beats>; T = ARDOUR::AutomatableSequence<Temporal::Beats>]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1805:48:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 1126 | 
      |                                                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1128 | 
      |                                                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1137 | 
      |                                                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1146 | 
      |                                                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                      
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1160 | 
      |                                                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~                     
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                              
 1166 | 
      |                                                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1176 | 
      |                                                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~                          
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                              
 1193 | 
      |                                                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1197 |                 //
      |                 ~~                                            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1206 | 
      |                                                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1210 | 
      |                                                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1213 | 
      |                                                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1224 | 
      |                                                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1250 | 
      |                                                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1267 | 
      |                                                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1276 | 
      |                                                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1281 | 
      |                                                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1302 | 
      |                                                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1305 | 
      |                                                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1312 | 
      |                                                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1316 | 
      |                                                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1326 | 
      |                                                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1344 | 
      |                                                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1349 | 
      |                                                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1386 | 
      |                                                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1395 | 
      |                                                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1402 | 
      |                                                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                      
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1444 | 
      |                                                               
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1446 | 
      |                                                               
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1454 | 
      |                                                               
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1499 | 
      |                                                               
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                                         
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1541 | #endif
      | ~~~~~~                                                        
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1543 | 
      |                                                               
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1553 | 
      |                                                               
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1556 | 
      |                                                               
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1560 | 
      |                                                               
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1564 | 
      |                                                               
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1575 | 
      |                                                               
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                      
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1591 | 
      |                                                               
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1594 | 
      |                                                               
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1608 | 
      |                                                               
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1615 | 
      |                                                               
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1619 | 
      |                                                               
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1623 | 
      |                                                               
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~                              
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                                               
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                                               
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                                        
 1663 | 
      |                                                               
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                      
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1694 | 
      |                                                               
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1700 | 
      |                                                               
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1724 | 
      |                                                               
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1742 | 
      |                                                               
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1751 | 
      |                                                               
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1757 | 
      |                                                               
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1768 | 
      |                                                               
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1775 | 
      |                                                               
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1782 | 
      |                                                               
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1788 | 
      |                                                               
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1797 | 
      |                                                               
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1803 | 
      |                                                               
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<Evoral::Sequence<Temporal::Beats> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const Evoral::Sequence<Temporal::Beats> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const Evoral::Sequence<Temporal::Beats> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const Evoral::Sequence<Temporal::Beats> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const Evoral::Sequence<Temporal::Beats> >; T = std::shared_ptr<const Evoral::Sequence<Temporal::Beats> >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const Evoral::Sequence<Temporal::Beats> >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const Evoral::Sequence<Temporal::Beats> >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::AutomatableSequence<Temporal::Beats>; R = const Evoral::Sequence<Temporal::Beats>; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = Evoral::Sequence<Temporal::Beats>; T = ARDOUR::AutomatableSequence<Temporal::Beats>]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1805:48:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 1126 | 
      |                                                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1128 | 
      |                                                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1137 | 
      |                                                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1146 | 
      |                                                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                      
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1160 | 
      |                                                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~                     
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                              
 1166 | 
      |                                                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1176 | 
      |                                                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~                          
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                              
 1193 | 
      |                                                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1197 |                 //
      |                 ~~                                            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1206 | 
      |                                                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1210 | 
      |                                                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1213 | 
      |                                                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1224 | 
      |                                                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1250 | 
      |                                                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1267 | 
      |                                                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1276 | 
      |                                                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1281 | 
      |                                                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1302 | 
      |                                                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1305 | 
      |                                                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1312 | 
      |                                                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1316 | 
      |                                                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1326 | 
      |                                                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1344 | 
      |                                                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1349 | 
      |                                                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1386 | 
      |                                                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1395 | 
      |                                                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1402 | 
      |                                                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                      
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1444 | 
      |                                                               
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1446 | 
      |                                                               
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1454 | 
      |                                                               
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1499 | 
      |                                                               
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                                         
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1541 | #endif
      | ~~~~~~                                                        
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1543 | 
      |                                                               
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1553 | 
      |                                                               
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1556 | 
      |                                                               
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1560 | 
      |                                                               
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1564 | 
      |                                                               
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1575 | 
      |                                                               
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                      
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1591 | 
      |                                                               
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1594 | 
      |                                                               
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1608 | 
      |                                                               
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1615 | 
      |                                                               
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1619 | 
      |                                                               
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1623 | 
      |                                                               
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~                              
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                                               
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                                               
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                                        
 1663 | 
      |                                                               
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                      
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1694 | 
      |                                                               
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1700 | 
      |                                                               
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1724 | 
      |                                                               
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1742 | 
      |                                                               
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1751 | 
      |                                                               
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1757 | 
      |                                                               
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1768 | 
      |                                                               
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1775 | 
      |                                                               
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1782 | 
      |                                                               
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1788 | 
      |                                                               
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1797 | 
      |                                                               
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 1803 | 
      |                                                               
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const Evoral::Sequence<Temporal::Beats> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::PluginInfo> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::PluginInfo> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::PluginInfo> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::shared_ptr<ARDOUR::PluginInfo> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::shared_ptr<ARDOUR::PluginInfo> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::PluginInfo> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<ARDOUR::PluginInfo>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2024:33:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginStdList(const char*) [with T = std::shared_ptr<ARDOUR::PluginInfo>]'
 2024 |     return beginConstStdList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:1846:56:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 1126 | 
      |                                                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1128 | 
      |                                                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1137 | 
      |                                                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1146 | 
      |                                                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                              
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1160 | 
      |                                                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~                             
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                      
 1166 | 
      |                                                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1176 | 
      |                                                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~                                  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                      
 1193 | 
      |                                                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1197 |                 //
      |                 ~~                                                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1206 | 
      |                                                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1210 | 
      |                                                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1213 | 
      |                                                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1224 | 
      |                                                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1250 | 
      |                                                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1267 | 
      |                                                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1276 | 
      |                                                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1281 | 
      |                                                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1302 | 
      |                                                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1305 | 
      |                                                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1312 | 
      |                                                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1316 | 
      |                                                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1326 | 
      |                                                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1344 | 
      |                                                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1349 | 
      |                                                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1386 | 
      |                                                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1395 | 
      |                                                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1402 | 
      |                                                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                              
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1444 | 
      |                                                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1446 | 
      |                                                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1454 | 
      |                                                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1499 | 
      |                                                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1541 | #endif
      | ~~~~~~                                                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1543 | 
      |                                                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1553 | 
      |                                                                       
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1556 | 
      |                                                                       
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1560 | 
      |                                                                       
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1564 | 
      |                                                                       
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1575 | 
      |                                                                       
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                              
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1591 | 
      |                                                                       
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1594 | 
      |                                                                       
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1608 | 
      |                                                                       
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1615 | 
      |                                                                       
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1619 | 
      |                                                                       
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1623 | 
      |                                                                       
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~                                      
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                                                       
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                                                       
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1662 | #endif
      | ~~~~~~                                                                
 1663 | 
      |                                                                       
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                              
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1694 | 
      |                                                                       
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1700 | 
      |                                                                       
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1724 | 
      |                                                                       
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1742 | 
      |                                                                       
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1751 | 
      |                                                                       
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1757 | 
      |                                                                       
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1768 | 
      |                                                                       
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1775 | 
      |                                                                       
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1782 | 
      |                                                                       
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1788 | 
      |                                                                       
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1797 | 
      |                                                                       
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1803 | 
      |                                                                       
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1807 | 
      |                                                                       
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1815 | 
      |                                                                       
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1819 | 
      |                                                                       
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1824 | 
      |                                                                       
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1829 | 
      |                                                                       
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1834 | 
      |                                                                       
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1836 | 
      |                                                                       
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                          
 1844 | 
      |                                                                       
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<ARDOUR::PluginInfo> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Latent>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Latent>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Latent>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Latent>; T = std::shared_ptr<ARDOUR::Latent>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Latent>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Latent>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::Latent; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::Latent; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1867:20:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                   
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                   
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                            
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1137 | 
      |                                   
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1146 | 
      |                                   
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1160 | 
      |                                   
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~  
 1166 | 
      |                                   
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1176 | 
      |                                   
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~  
 1193 | 
      |                                   
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1206 | 
      |                                   
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1210 | 
      |                                   
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1213 | 
      |                                   
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1224 | 
      |                                   
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1250 | 
      |                                   
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1267 | 
      |                                   
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1276 | 
      |                                   
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1281 | 
      |                                   
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1302 | 
      |                                   
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1305 | 
      |                                   
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1312 | 
      |                                   
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1316 | 
      |                                   
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1326 | 
      |                                   
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1344 | 
      |                                   
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1349 | 
      |                                   
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1386 | 
      |                                   
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1395 | 
      |                                   
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1402 | 
      |                                   
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                   
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1446 | 
      |                                   
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1454 | 
      |                                   
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1499 | 
      |                                   
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                             
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                            
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1543 | 
      |                                   
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1553 | 
      |                                   
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1556 | 
      |                                   
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1560 | 
      |                                   
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1564 | 
      |                                   
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1575 | 
      |                                   
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1591 | 
      |                                   
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1594 | 
      |                                   
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1608 | 
      |                                   
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1615 | 
      |                                   
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1619 | 
      |                                   
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                   
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~  
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                   
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                   
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                            
 1663 | 
      |                                   
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1694 | 
      |                                   
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1700 | 
      |                                   
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1724 | 
      |                                   
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1742 | 
      |                                   
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1751 | 
      |                                   
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1757 | 
      |                                   
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1768 | 
      |                                   
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1775 | 
      |                                   
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1782 | 
      |                                   
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1788 | 
      |                                   
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1797 | 
      |                                   
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1803 | 
      |                                   
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1807 | 
      |                                   
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1815 | 
      |                                   
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1819 | 
      |                                   
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1824 | 
      |                                   
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1829 | 
      |                                   
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1834 | 
      |                                   
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                   
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1844 | 
      |                                   
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                   
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1862 | 
      |                                   
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                   
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Latent>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::Latent>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::Latent>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::Latent>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::Latent>; T = std::shared_ptr<const ARDOUR::Latent>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::Latent>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::Latent>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::Latent; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::Latent; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1867:20:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                   
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                   
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                            
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1137 | 
      |                                   
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1146 | 
      |                                   
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1160 | 
      |                                   
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~  
 1166 | 
      |                                   
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1176 | 
      |                                   
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~  
 1193 | 
      |                                   
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1206 | 
      |                                   
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1210 | 
      |                                   
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1213 | 
      |                                   
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1224 | 
      |                                   
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1250 | 
      |                                   
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1267 | 
      |                                   
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1276 | 
      |                                   
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1281 | 
      |                                   
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1302 | 
      |                                   
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1305 | 
      |                                   
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1312 | 
      |                                   
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1316 | 
      |                                   
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1326 | 
      |                                   
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1344 | 
      |                                   
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1349 | 
      |                                   
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1386 | 
      |                                   
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1395 | 
      |                                   
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1402 | 
      |                                   
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                   
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1446 | 
      |                                   
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1454 | 
      |                                   
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1499 | 
      |                                   
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                             
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                            
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1543 | 
      |                                   
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1553 | 
      |                                   
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1556 | 
      |                                   
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1560 | 
      |                                   
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1564 | 
      |                                   
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1575 | 
      |                                   
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1591 | 
      |                                   
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1594 | 
      |                                   
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1608 | 
      |                                   
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1615 | 
      |                                   
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1619 | 
      |                                   
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                   
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~  
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                   
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                   
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                            
 1663 | 
      |                                   
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1694 | 
      |                                   
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1700 | 
      |                                   
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1724 | 
      |                                   
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1742 | 
      |                                   
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1751 | 
      |                                   
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1757 | 
      |                                   
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1768 | 
      |                                   
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1775 | 
      |                                   
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1782 | 
      |                                   
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1788 | 
      |                                   
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1797 | 
      |                                   
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1803 | 
      |                                   
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1807 | 
      |                                   
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1815 | 
      |                                   
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1819 | 
      |                                   
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1824 | 
      |                                   
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1829 | 
      |                                   
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1834 | 
      |                                   
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                   
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1844 | 
      |                                   
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                   
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~      
 1862 | 
      |                                   
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                   
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::Latent>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::PluginInsert>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::PluginInsert>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::PluginInsert>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::PluginInsert>; T = std::shared_ptr<ARDOUR::PluginInsert>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PluginInsert>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PluginInsert>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::PluginInsert; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::PluginInsert; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1868:26:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                         
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                         
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                  
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1137 | 
      |                                         
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1146 | 
      |                                         
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1160 | 
      |                                         
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1166 | 
      |                                         
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1176 | 
      |                                         
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~    
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1193 | 
      |                                         
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                      
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1206 | 
      |                                         
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1210 | 
      |                                         
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1213 | 
      |                                         
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1224 | 
      |                                         
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1250 | 
      |                                         
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1267 | 
      |                                         
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1276 | 
      |                                         
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1281 | 
      |                                         
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1302 | 
      |                                         
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1305 | 
      |                                         
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1312 | 
      |                                         
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1316 | 
      |                                         
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1326 | 
      |                                         
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1344 | 
      |                                         
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1349 | 
      |                                         
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1386 | 
      |                                         
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1395 | 
      |                                         
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1402 | 
      |                                         
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                         
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1446 | 
      |                                         
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1454 | 
      |                                         
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1499 | 
      |                                         
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                   
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                  
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1543 | 
      |                                         
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1553 | 
      |                                         
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1556 | 
      |                                         
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1560 | 
      |                                         
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1564 | 
      |                                         
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1575 | 
      |                                         
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1591 | 
      |                                         
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1594 | 
      |                                         
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1608 | 
      |                                         
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1615 | 
      |                                         
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1619 | 
      |                                         
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                         
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~        
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                         
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                         
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                  
 1663 | 
      |                                         
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1694 | 
      |                                         
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1700 | 
      |                                         
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1724 | 
      |                                         
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1742 | 
      |                                         
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1751 | 
      |                                         
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1757 | 
      |                                         
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1768 | 
      |                                         
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1775 | 
      |                                         
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1782 | 
      |                                         
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1788 | 
      |                                         
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1797 | 
      |                                         
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1803 | 
      |                                         
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1807 | 
      |                                         
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1815 | 
      |                                         
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1819 | 
      |                                         
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1824 | 
      |                                         
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1829 | 
      |                                         
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1834 | 
      |                                         
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                         
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1844 | 
      |                                         
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                         
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1862 | 
      |                                         
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                         
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::PluginInsert>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::PluginInsert>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::PluginInsert>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::PluginInsert>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::PluginInsert>; T = std::shared_ptr<const ARDOUR::PluginInsert>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::PluginInsert>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::PluginInsert>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::PluginInsert; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::PluginInsert; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1868:26:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                         
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                         
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                  
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1137 | 
      |                                         
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1146 | 
      |                                         
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1160 | 
      |                                         
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1166 | 
      |                                         
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1176 | 
      |                                         
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~    
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1193 | 
      |                                         
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                      
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1206 | 
      |                                         
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1210 | 
      |                                         
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1213 | 
      |                                         
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1224 | 
      |                                         
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1250 | 
      |                                         
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1267 | 
      |                                         
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1276 | 
      |                                         
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1281 | 
      |                                         
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1302 | 
      |                                         
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1305 | 
      |                                         
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1312 | 
      |                                         
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1316 | 
      |                                         
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1326 | 
      |                                         
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1344 | 
      |                                         
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1349 | 
      |                                         
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1386 | 
      |                                         
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1395 | 
      |                                         
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1402 | 
      |                                         
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                         
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1446 | 
      |                                         
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1454 | 
      |                                         
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1499 | 
      |                                         
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                   
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                  
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1543 | 
      |                                         
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1553 | 
      |                                         
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1556 | 
      |                                         
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1560 | 
      |                                         
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1564 | 
      |                                         
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1575 | 
      |                                         
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1591 | 
      |                                         
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1594 | 
      |                                         
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1608 | 
      |                                         
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1615 | 
      |                                         
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1619 | 
      |                                         
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                         
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~        
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                         
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                         
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                  
 1663 | 
      |                                         
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1694 | 
      |                                         
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1700 | 
      |                                         
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1724 | 
      |                                         
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1742 | 
      |                                         
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1751 | 
      |                                         
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1757 | 
      |                                         
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1768 | 
      |                                         
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1775 | 
      |                                         
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1782 | 
      |                                         
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1788 | 
      |                                         
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1797 | 
      |                                         
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1803 | 
      |                                         
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1807 | 
      |                                         
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1815 | 
      |                                         
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1819 | 
      |                                         
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1824 | 
      |                                         
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1829 | 
      |                                         
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1834 | 
      |                                         
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                         
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1844 | 
      |                                         
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                         
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1862 | 
      |                                         
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                         
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::PluginInsert>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::SideChain>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::SideChain>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::SideChain>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::SideChain>; T = std::shared_ptr<ARDOUR::SideChain>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SideChain>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SideChain>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::SideChain; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::SideChain; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1870:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1137 | 
      |                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1146 | 
      |                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1160 | 
      |                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1166 | 
      |                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1176 | 
      |                                      
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~ 
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1193 | 
      |                                      
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                   
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1206 | 
      |                                      
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1210 | 
      |                                      
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1213 | 
      |                                      
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1224 | 
      |                                      
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1250 | 
      |                                      
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1267 | 
      |                                      
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1276 | 
      |                                      
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1281 | 
      |                                      
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1302 | 
      |                                      
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1305 | 
      |                                      
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1312 | 
      |                                      
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1316 | 
      |                                      
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1326 | 
      |                                      
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1344 | 
      |                                      
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1349 | 
      |                                      
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1386 | 
      |                                      
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1395 | 
      |                                      
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1402 | 
      |                                      
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                      
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1446 | 
      |                                      
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1454 | 
      |                                      
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1499 | 
      |                                      
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                               
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1543 | 
      |                                      
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1553 | 
      |                                      
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1556 | 
      |                                      
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1560 | 
      |                                      
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1564 | 
      |                                      
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1575 | 
      |                                      
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1591 | 
      |                                      
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1594 | 
      |                                      
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1608 | 
      |                                      
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1615 | 
      |                                      
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1619 | 
      |                                      
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                      
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~     
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                      
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                      
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                               
 1663 | 
      |                                      
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1694 | 
      |                                      
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1700 | 
      |                                      
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1724 | 
      |                                      
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1742 | 
      |                                      
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1751 | 
      |                                      
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1757 | 
      |                                      
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1768 | 
      |                                      
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1775 | 
      |                                      
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1782 | 
      |                                      
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1788 | 
      |                                      
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1797 | 
      |                                      
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1803 | 
      |                                      
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1807 | 
      |                                      
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1815 | 
      |                                      
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1819 | 
      |                                      
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1824 | 
      |                                      
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1829 | 
      |                                      
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1834 | 
      |                                      
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                      
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1844 | 
      |                                      
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                      
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1862 | 
      |                                      
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                      
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::SideChain>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::SideChain>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::SideChain>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::SideChain>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::SideChain>; T = std::shared_ptr<const ARDOUR::SideChain>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::SideChain>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::SideChain>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::SideChain; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::SideChain; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1870:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1137 | 
      |                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1146 | 
      |                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1160 | 
      |                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1166 | 
      |                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1176 | 
      |                                      
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~ 
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1193 | 
      |                                      
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                   
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1206 | 
      |                                      
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1210 | 
      |                                      
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1213 | 
      |                                      
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1224 | 
      |                                      
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1250 | 
      |                                      
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1267 | 
      |                                      
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1276 | 
      |                                      
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1281 | 
      |                                      
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1302 | 
      |                                      
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1305 | 
      |                                      
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1312 | 
      |                                      
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1316 | 
      |                                      
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1326 | 
      |                                      
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1344 | 
      |                                      
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1349 | 
      |                                      
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1386 | 
      |                                      
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1395 | 
      |                                      
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1402 | 
      |                                      
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                      
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1446 | 
      |                                      
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1454 | 
      |                                      
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1499 | 
      |                                      
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                               
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1543 | 
      |                                      
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1553 | 
      |                                      
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1556 | 
      |                                      
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1560 | 
      |                                      
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1564 | 
      |                                      
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1575 | 
      |                                      
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1591 | 
      |                                      
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1594 | 
      |                                      
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1608 | 
      |                                      
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1615 | 
      |                                      
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1619 | 
      |                                      
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                      
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~     
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                      
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                      
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                               
 1663 | 
      |                                      
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1694 | 
      |                                      
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1700 | 
      |                                      
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1724 | 
      |                                      
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1742 | 
      |                                      
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1751 | 
      |                                      
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1757 | 
      |                                      
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1768 | 
      |                                      
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1775 | 
      |                                      
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1782 | 
      |                                      
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1788 | 
      |                                      
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1797 | 
      |                                      
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1803 | 
      |                                      
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1807 | 
      |                                      
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1815 | 
      |                                      
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1819 | 
      |                                      
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1824 | 
      |                                      
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1829 | 
      |                                      
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1834 | 
      |                                      
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                      
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1844 | 
      |                                      
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                      
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1862 | 
      |                                      
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                      
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::SideChain>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::IOProcessor>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::IOProcessor>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::IOProcessor>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::IOProcessor>; T = std::shared_ptr<ARDOUR::IOProcessor>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::IOProcessor>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::IOProcessor>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::IOProcessor; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::IOProcessor; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1871:25:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                        
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                        
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                 
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1137 | 
      |                                        
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1146 | 
      |                                        
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1160 | 
      |                                        
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1166 | 
      |                                        
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1176 | 
      |                                        
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~   
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1193 | 
      |                                        
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                     
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1206 | 
      |                                        
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1210 | 
      |                                        
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1213 | 
      |                                        
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1224 | 
      |                                        
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1250 | 
      |                                        
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1267 | 
      |                                        
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1276 | 
      |                                        
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1281 | 
      |                                        
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1302 | 
      |                                        
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1305 | 
      |                                        
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1312 | 
      |                                        
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1316 | 
      |                                        
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1326 | 
      |                                        
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1344 | 
      |                                        
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1349 | 
      |                                        
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1386 | 
      |                                        
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1395 | 
      |                                        
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1402 | 
      |                                        
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                        
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1446 | 
      |                                        
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1454 | 
      |                                        
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1499 | 
      |                                        
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                  
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                 
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1543 | 
      |                                        
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1553 | 
      |                                        
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1556 | 
      |                                        
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1560 | 
      |                                        
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1564 | 
      |                                        
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1575 | 
      |                                        
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1591 | 
      |                                        
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1594 | 
      |                                        
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1608 | 
      |                                        
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1615 | 
      |                                        
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1619 | 
      |                                        
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                        
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~       
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                        
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                        
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                 
 1663 | 
      |                                        
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1694 | 
      |                                        
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1700 | 
      |                                        
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1724 | 
      |                                        
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1742 | 
      |                                        
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1751 | 
      |                                        
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1757 | 
      |                                        
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1768 | 
      |                                        
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1775 | 
      |                                        
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1782 | 
      |                                        
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1788 | 
      |                                        
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1797 | 
      |                                        
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1803 | 
      |                                        
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1807 | 
      |                                        
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1815 | 
      |                                        
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1819 | 
      |                                        
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1824 | 
      |                                        
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1829 | 
      |                                        
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1834 | 
      |                                        
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                        
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1844 | 
      |                                        
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                        
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1862 | 
      |                                        
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                        
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::IOProcessor>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::IOProcessor>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::IOProcessor>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::IOProcessor>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::IOProcessor>; T = std::shared_ptr<const ARDOUR::IOProcessor>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::IOProcessor>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::IOProcessor>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::IOProcessor; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::IOProcessor; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1871:25:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                        
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                        
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                 
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1137 | 
      |                                        
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1146 | 
      |                                        
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1160 | 
      |                                        
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1166 | 
      |                                        
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1176 | 
      |                                        
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~   
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~       
 1193 | 
      |                                        
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                     
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1206 | 
      |                                        
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1210 | 
      |                                        
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1213 | 
      |                                        
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1224 | 
      |                                        
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1250 | 
      |                                        
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1267 | 
      |                                        
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1276 | 
      |                                        
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1281 | 
      |                                        
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1302 | 
      |                                        
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1305 | 
      |                                        
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1312 | 
      |                                        
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1316 | 
      |                                        
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1326 | 
      |                                        
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1344 | 
      |                                        
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1349 | 
      |                                        
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1386 | 
      |                                        
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1395 | 
      |                                        
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1402 | 
      |                                        
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                        
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1446 | 
      |                                        
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1454 | 
      |                                        
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1499 | 
      |                                        
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                  
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                 
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1543 | 
      |                                        
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1553 | 
      |                                        
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1556 | 
      |                                        
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1560 | 
      |                                        
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1564 | 
      |                                        
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1575 | 
      |                                        
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1591 | 
      |                                        
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1594 | 
      |                                        
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1608 | 
      |                                        
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1615 | 
      |                                        
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1619 | 
      |                                        
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                        
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~       
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                        
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                        
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                 
 1663 | 
      |                                        
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1694 | 
      |                                        
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1700 | 
      |                                        
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1724 | 
      |                                        
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1742 | 
      |                                        
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1751 | 
      |                                        
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1757 | 
      |                                        
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1768 | 
      |                                        
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1775 | 
      |                                        
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1782 | 
      |                                        
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1788 | 
      |                                        
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1797 | 
      |                                        
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1803 | 
      |                                        
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1807 | 
      |                                        
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1815 | 
      |                                        
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1819 | 
      |                                        
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1824 | 
      |                                        
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1829 | 
      |                                        
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1834 | 
      |                                        
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                        
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1844 | 
      |                                        
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                        
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~ 
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~           
 1862 | 
      |                                        
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                        
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::IOProcessor>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::UnknownProcessor>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::UnknownProcessor>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::UnknownProcessor>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::UnknownProcessor>; T = std::shared_ptr<ARDOUR::UnknownProcessor>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::UnknownProcessor>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::UnknownProcessor>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::UnknownProcessor; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::UnknownProcessor; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1872:30:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1126 | 
      |                                             
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                             
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                      
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1137 | 
      |                                             
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1146 | 
      |                                             
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1160 | 
      |                                             
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~   
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~            
 1166 | 
      |                                             
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1176 | 
      |                                             
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~        
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~            
 1193 | 
      |                                             
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                          
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1206 | 
      |                                             
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1210 | 
      |                                             
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1213 | 
      |                                             
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1224 | 
      |                                             
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1250 | 
      |                                             
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1267 | 
      |                                             
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1276 | 
      |                                             
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1281 | 
      |                                             
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1302 | 
      |                                             
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1305 | 
      |                                             
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1312 | 
      |                                             
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1316 | 
      |                                             
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1326 | 
      |                                             
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1344 | 
      |                                             
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1349 | 
      |                                             
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1386 | 
      |                                             
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1395 | 
      |                                             
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1402 | 
      |                                             
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                             
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1446 | 
      |                                             
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1454 | 
      |                                             
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1499 | 
      |                                             
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                       
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                      
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1543 | 
      |                                             
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1553 | 
      |                                             
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1556 | 
      |                                             
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1560 | 
      |                                             
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1564 | 
      |                                             
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1575 | 
      |                                             
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1591 | 
      |                                             
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1594 | 
      |                                             
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1608 | 
      |                                             
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1615 | 
      |                                             
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1619 | 
      |                                             
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                             
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~            
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                             
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                             
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                      
 1663 | 
      |                                             
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1694 | 
      |                                             
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1700 | 
      |                                             
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1724 | 
      |                                             
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1742 | 
      |                                             
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1751 | 
      |                                             
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1757 | 
      |                                             
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1768 | 
      |                                             
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1775 | 
      |                                             
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1782 | 
      |                                             
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1788 | 
      |                                             
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1797 | 
      |                                             
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1803 | 
      |                                             
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1807 | 
      |                                             
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1815 | 
      |                                             
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1819 | 
      |                                             
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1824 | 
      |                                             
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1829 | 
      |                                             
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1834 | 
      |                                             
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                             
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1844 | 
      |                                             
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                             
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1862 | 
      |                                             
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                             
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::UnknownProcessor>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::UnknownProcessor>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::UnknownProcessor>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::UnknownProcessor>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::UnknownProcessor>; T = std::shared_ptr<const ARDOUR::UnknownProcessor>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::UnknownProcessor>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::UnknownProcessor>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::UnknownProcessor; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::UnknownProcessor; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1872:30:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1126 | 
      |                                             
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                             
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                      
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1137 | 
      |                                             
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1146 | 
      |                                             
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1160 | 
      |                                             
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~   
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~            
 1166 | 
      |                                             
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1176 | 
      |                                             
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~        
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~            
 1193 | 
      |                                             
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                          
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1206 | 
      |                                             
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1210 | 
      |                                             
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1213 | 
      |                                             
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1224 | 
      |                                             
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1250 | 
      |                                             
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1267 | 
      |                                             
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1276 | 
      |                                             
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1281 | 
      |                                             
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1302 | 
      |                                             
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1305 | 
      |                                             
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1312 | 
      |                                             
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1316 | 
      |                                             
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1326 | 
      |                                             
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1344 | 
      |                                             
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1349 | 
      |                                             
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1386 | 
      |                                             
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1395 | 
      |                                             
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1402 | 
      |                                             
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                             
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1446 | 
      |                                             
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1454 | 
      |                                             
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1499 | 
      |                                             
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                       
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                      
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1543 | 
      |                                             
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1553 | 
      |                                             
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1556 | 
      |                                             
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1560 | 
      |                                             
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1564 | 
      |                                             
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1575 | 
      |                                             
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1591 | 
      |                                             
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1594 | 
      |                                             
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1608 | 
      |                                             
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1615 | 
      |                                             
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1619 | 
      |                                             
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                             
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~            
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                             
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                             
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                      
 1663 | 
      |                                             
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1694 | 
      |                                             
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1700 | 
      |                                             
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1724 | 
      |                                             
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1742 | 
      |                                             
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1751 | 
      |                                             
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1757 | 
      |                                             
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1768 | 
      |                                             
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1775 | 
      |                                             
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1782 | 
      |                                             
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1788 | 
      |                                             
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1797 | 
      |                                             
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1803 | 
      |                                             
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1807 | 
      |                                             
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1815 | 
      |                                             
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1819 | 
      |                                             
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1824 | 
      |                                             
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1829 | 
      |                                             
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1834 | 
      |                                             
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                             
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1844 | 
      |                                             
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                             
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1862 | 
      |                                             
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                             
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::UnknownProcessor>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Amp>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Amp>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Amp>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Amp>; T = std::shared_ptr<ARDOUR::Amp>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Amp>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Amp>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::Amp; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::Amp; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1873:17:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                         
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1137 | 
      |                                
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1146 | 
      |                                
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1160 | 
      |                                
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                                
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1176 | 
      |                                
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                                
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~             
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1206 | 
      |                                
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1210 | 
      |                                
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1213 | 
      |                                
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1224 | 
      |                                
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1250 | 
      |                                
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1267 | 
      |                                
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1276 | 
      |                                
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1281 | 
      |                                
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1302 | 
      |                                
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1305 | 
      |                                
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1312 | 
      |                                
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1316 | 
      |                                
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1326 | 
      |                                
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1344 | 
      |                                
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1349 | 
      |                                
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1386 | 
      |                                
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1395 | 
      |                                
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1402 | 
      |                                
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1446 | 
      |                                
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1454 | 
      |                                
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1499 | 
      |                                
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                          
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                         
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1543 | 
      |                                
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1553 | 
      |                                
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1556 | 
      |                                
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1560 | 
      |                                
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1564 | 
      |                                
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1575 | 
      |                                
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1591 | 
      |                                
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1594 | 
      |                                
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1608 | 
      |                                
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1615 | 
      |                                
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1619 | 
      |                                
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                         
 1663 | 
      |                                
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1694 | 
      |                                
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1700 | 
      |                                
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1724 | 
      |                                
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1742 | 
      |                                
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1751 | 
      |                                
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1757 | 
      |                                
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1768 | 
      |                                
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1775 | 
      |                                
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1782 | 
      |                                
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1788 | 
      |                                
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1797 | 
      |                                
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1803 | 
      |                                
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1807 | 
      |                                
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1815 | 
      |                                
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1819 | 
      |                                
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1824 | 
      |                                
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1829 | 
      |                                
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1834 | 
      |                                
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1844 | 
      |                                
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1862 | 
      |                                
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Amp>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::Amp>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::Amp>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::Amp>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::Amp>; T = std::shared_ptr<const ARDOUR::Amp>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::Amp>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::Amp>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::Amp; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::Amp; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1873:17:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                         
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1137 | 
      |                                
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1146 | 
      |                                
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1160 | 
      |                                
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                                
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1176 | 
      |                                
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                                
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~             
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1206 | 
      |                                
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1210 | 
      |                                
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1213 | 
      |                                
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1224 | 
      |                                
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1250 | 
      |                                
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1267 | 
      |                                
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1276 | 
      |                                
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1281 | 
      |                                
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1302 | 
      |                                
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1305 | 
      |                                
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1312 | 
      |                                
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1316 | 
      |                                
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1326 | 
      |                                
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1344 | 
      |                                
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1349 | 
      |                                
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1386 | 
      |                                
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1395 | 
      |                                
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1402 | 
      |                                
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1446 | 
      |                                
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1454 | 
      |                                
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1499 | 
      |                                
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                          
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                         
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1543 | 
      |                                
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1553 | 
      |                                
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1556 | 
      |                                
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1560 | 
      |                                
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1564 | 
      |                                
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1575 | 
      |                                
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1591 | 
      |                                
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1594 | 
      |                                
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1608 | 
      |                                
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1615 | 
      |                                
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1619 | 
      |                                
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                         
 1663 | 
      |                                
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1694 | 
      |                                
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1700 | 
      |                                
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1724 | 
      |                                
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1742 | 
      |                                
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1751 | 
      |                                
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1757 | 
      |                                
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1768 | 
      |                                
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1775 | 
      |                                
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1782 | 
      |                                
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1788 | 
      |                                
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1797 | 
      |                                
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1803 | 
      |                                
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1807 | 
      |                                
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1815 | 
      |                                
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1819 | 
      |                                
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1824 | 
      |                                
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1829 | 
      |                                
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1834 | 
      |                                
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1844 | 
      |                                
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~   
 1862 | 
      |                                
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::Amp>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::DiskIOProcessor>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::DiskIOProcessor>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::DiskIOProcessor>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::DiskIOProcessor>; T = std::shared_ptr<ARDOUR::DiskIOProcessor>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::DiskIOProcessor>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::DiskIOProcessor>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::DiskIOProcessor; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::DiskIOProcessor; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1874:29:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1126 | 
      |                                            
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                            
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~     
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                     
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1137 | 
      |                                            
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1146 | 
      |                                            
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~   
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1160 | 
      |                                            
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~  
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~     
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~           
 1166 | 
      |                                            
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~     
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1176 | 
      |                                            
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~       
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~           
 1193 | 
      |                                            
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                         
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1206 | 
      |                                            
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1210 | 
      |                                            
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1213 | 
      |                                            
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1224 | 
      |                                            
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1250 | 
      |                                            
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1267 | 
      |                                            
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1276 | 
      |                                            
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1281 | 
      |                                            
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1302 | 
      |                                            
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1305 | 
      |                                            
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1312 | 
      |                                            
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1316 | 
      |                                            
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1326 | 
      |                                            
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1344 | 
      |                                            
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1349 | 
      |                                            
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1386 | 
      |                                            
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1395 | 
      |                                            
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1402 | 
      |                                            
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~   
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                            
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1446 | 
      |                                            
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1454 | 
      |                                            
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1499 | 
      |                                            
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                      
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                     
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1543 | 
      |                                            
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1553 | 
      |                                            
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1556 | 
      |                                            
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1560 | 
      |                                            
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1564 | 
      |                                            
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1575 | 
      |                                            
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~   
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1591 | 
      |                                            
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1594 | 
      |                                            
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1608 | 
      |                                            
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1615 | 
      |                                            
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1619 | 
      |                                            
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                            
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~           
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                            
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                            
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                     
 1663 | 
      |                                            
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~   
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1694 | 
      |                                            
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1700 | 
      |                                            
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1724 | 
      |                                            
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1742 | 
      |                                            
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1751 | 
      |                                            
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1757 | 
      |                                            
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1768 | 
      |                                            
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1775 | 
      |                                            
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1782 | 
      |                                            
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1788 | 
      |                                            
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1797 | 
      |                                            
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1803 | 
      |                                            
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1807 | 
      |                                            
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1815 | 
      |                                            
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1819 | 
      |                                            
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1824 | 
      |                                            
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1829 | 
      |                                            
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1834 | 
      |                                            
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                            
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~     
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1844 | 
      |                                            
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                            
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~     
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1862 | 
      |                                            
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                            
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~   
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::DiskIOProcessor>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::DiskIOProcessor>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::DiskIOProcessor>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::DiskIOProcessor>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::DiskIOProcessor>; T = std::shared_ptr<const ARDOUR::DiskIOProcessor>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::DiskIOProcessor>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::DiskIOProcessor>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::DiskIOProcessor; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::DiskIOProcessor; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1874:29:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1126 | 
      |                                            
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                            
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~     
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                     
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1137 | 
      |                                            
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1146 | 
      |                                            
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~   
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1160 | 
      |                                            
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~  
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~     
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~           
 1166 | 
      |                                            
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~     
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1176 | 
      |                                            
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~       
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~           
 1193 | 
      |                                            
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                         
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1206 | 
      |                                            
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1210 | 
      |                                            
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1213 | 
      |                                            
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1224 | 
      |                                            
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1250 | 
      |                                            
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1267 | 
      |                                            
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1276 | 
      |                                            
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1281 | 
      |                                            
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1302 | 
      |                                            
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1305 | 
      |                                            
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1312 | 
      |                                            
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1316 | 
      |                                            
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1326 | 
      |                                            
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1344 | 
      |                                            
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1349 | 
      |                                            
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1386 | 
      |                                            
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1395 | 
      |                                            
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1402 | 
      |                                            
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~   
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                            
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1446 | 
      |                                            
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1454 | 
      |                                            
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1499 | 
      |                                            
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                      
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                     
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1543 | 
      |                                            
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1553 | 
      |                                            
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1556 | 
      |                                            
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1560 | 
      |                                            
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1564 | 
      |                                            
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1575 | 
      |                                            
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~   
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1591 | 
      |                                            
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1594 | 
      |                                            
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1608 | 
      |                                            
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1615 | 
      |                                            
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1619 | 
      |                                            
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                            
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~           
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                            
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                            
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                     
 1663 | 
      |                                            
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~   
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1694 | 
      |                                            
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1700 | 
      |                                            
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1724 | 
      |                                            
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1742 | 
      |                                            
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1751 | 
      |                                            
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1757 | 
      |                                            
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1768 | 
      |                                            
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1775 | 
      |                                            
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1782 | 
      |                                            
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1788 | 
      |                                            
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1797 | 
      |                                            
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1803 | 
      |                                            
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1807 | 
      |                                            
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1815 | 
      |                                            
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1819 | 
      |                                            
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1824 | 
      |                                            
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1829 | 
      |                                            
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1834 | 
      |                                            
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                            
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~     
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1844 | 
      |                                            
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                            
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~     
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 1862 | 
      |                                            
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                            
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~   
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::DiskIOProcessor>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::DiskReader>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::DiskReader>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::DiskReader>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::DiskReader>; T = std::shared_ptr<ARDOUR::DiskReader>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::DiskReader>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::DiskReader>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::DiskReader; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::DiskReader; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1875:24:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1137 | 
      |                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1146 | 
      |                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1160 | 
      |                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1166 | 
      |                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1176 | 
      |                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1193 | 
      |                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1206 | 
      |                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1210 | 
      |                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1213 | 
      |                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1224 | 
      |                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1250 | 
      |                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1267 | 
      |                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1276 | 
      |                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1281 | 
      |                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1302 | 
      |                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1305 | 
      |                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1312 | 
      |                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1316 | 
      |                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1326 | 
      |                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1344 | 
      |                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1349 | 
      |                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1386 | 
      |                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1395 | 
      |                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1402 | 
      |                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1446 | 
      |                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1454 | 
      |                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1499 | 
      |                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1543 | 
      |                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1553 | 
      |                                       
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1556 | 
      |                                       
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1560 | 
      |                                       
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1564 | 
      |                                       
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1575 | 
      |                                       
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1591 | 
      |                                       
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1594 | 
      |                                       
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1608 | 
      |                                       
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1615 | 
      |                                       
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1619 | 
      |                                       
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                       
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~      
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                       
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                       
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                
 1663 | 
      |                                       
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1694 | 
      |                                       
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1700 | 
      |                                       
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1724 | 
      |                                       
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1742 | 
      |                                       
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1751 | 
      |                                       
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1757 | 
      |                                       
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1768 | 
      |                                       
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1775 | 
      |                                       
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1782 | 
      |                                       
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1788 | 
      |                                       
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1797 | 
      |                                       
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1803 | 
      |                                       
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1807 | 
      |                                       
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1815 | 
      |                                       
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1819 | 
      |                                       
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1824 | 
      |                                       
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1829 | 
      |                                       
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1834 | 
      |                                       
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                       
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1844 | 
      |                                       
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                       
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1862 | 
      |                                       
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                       
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::DiskReader>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::DiskReader>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::DiskReader>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::DiskReader>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::DiskReader>; T = std::shared_ptr<const ARDOUR::DiskReader>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::DiskReader>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::DiskReader>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::DiskReader; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::DiskReader; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1875:24:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1137 | 
      |                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1146 | 
      |                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1160 | 
      |                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1166 | 
      |                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1176 | 
      |                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1193 | 
      |                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1206 | 
      |                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1210 | 
      |                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1213 | 
      |                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1224 | 
      |                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1250 | 
      |                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1267 | 
      |                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1276 | 
      |                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1281 | 
      |                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1302 | 
      |                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1305 | 
      |                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1312 | 
      |                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1316 | 
      |                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1326 | 
      |                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1344 | 
      |                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1349 | 
      |                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1386 | 
      |                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1395 | 
      |                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1402 | 
      |                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1446 | 
      |                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1454 | 
      |                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1499 | 
      |                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1543 | 
      |                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1553 | 
      |                                       
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1556 | 
      |                                       
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1560 | 
      |                                       
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1564 | 
      |                                       
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1575 | 
      |                                       
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1591 | 
      |                                       
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1594 | 
      |                                       
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1608 | 
      |                                       
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1615 | 
      |                                       
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1619 | 
      |                                       
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                       
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~      
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                       
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                       
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                
 1663 | 
      |                                       
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1694 | 
      |                                       
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1700 | 
      |                                       
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1724 | 
      |                                       
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1742 | 
      |                                       
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1751 | 
      |                                       
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1757 | 
      |                                       
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1768 | 
      |                                       
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1775 | 
      |                                       
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1782 | 
      |                                       
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1788 | 
      |                                       
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1797 | 
      |                                       
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1803 | 
      |                                       
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1807 | 
      |                                       
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1815 | 
      |                                       
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1819 | 
      |                                       
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1824 | 
      |                                       
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1829 | 
      |                                       
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1834 | 
      |                                       
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                       
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1844 | 
      |                                       
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                       
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1862 | 
      |                                       
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                       
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::DiskReader>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::DiskWriter>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::DiskWriter>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::DiskWriter>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::DiskWriter>; T = std::shared_ptr<ARDOUR::DiskWriter>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::DiskWriter>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::DiskWriter>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::DiskWriter; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::DiskWriter; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1876:24:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1137 | 
      |                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1146 | 
      |                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1160 | 
      |                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1166 | 
      |                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1176 | 
      |                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1193 | 
      |                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1206 | 
      |                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1210 | 
      |                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1213 | 
      |                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1224 | 
      |                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1250 | 
      |                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1267 | 
      |                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1276 | 
      |                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1281 | 
      |                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1302 | 
      |                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1305 | 
      |                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1312 | 
      |                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1316 | 
      |                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1326 | 
      |                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1344 | 
      |                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1349 | 
      |                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1386 | 
      |                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1395 | 
      |                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1402 | 
      |                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1446 | 
      |                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1454 | 
      |                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1499 | 
      |                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1543 | 
      |                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1553 | 
      |                                       
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1556 | 
      |                                       
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1560 | 
      |                                       
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1564 | 
      |                                       
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1575 | 
      |                                       
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1591 | 
      |                                       
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1594 | 
      |                                       
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1608 | 
      |                                       
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1615 | 
      |                                       
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1619 | 
      |                                       
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                       
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~      
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                       
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                       
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                
 1663 | 
      |                                       
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1694 | 
      |                                       
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1700 | 
      |                                       
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1724 | 
      |                                       
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1742 | 
      |                                       
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1751 | 
      |                                       
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1757 | 
      |                                       
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1768 | 
      |                                       
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1775 | 
      |                                       
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1782 | 
      |                                       
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1788 | 
      |                                       
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1797 | 
      |                                       
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1803 | 
      |                                       
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1807 | 
      |                                       
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1815 | 
      |                                       
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1819 | 
      |                                       
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1824 | 
      |                                       
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1829 | 
      |                                       
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1834 | 
      |                                       
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                       
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1844 | 
      |                                       
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                       
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1862 | 
      |                                       
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                       
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::DiskWriter>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::DiskWriter>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::DiskWriter>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::DiskWriter>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::DiskWriter>; T = std::shared_ptr<const ARDOUR::DiskWriter>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::DiskWriter>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::DiskWriter>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::DiskWriter; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::DiskWriter; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1876:24:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                       
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                       
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1137 | 
      |                                       
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1146 | 
      |                                       
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1160 | 
      |                                       
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1166 | 
      |                                       
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1176 | 
      |                                       
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~  
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~      
 1193 | 
      |                                       
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                    
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1206 | 
      |                                       
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1210 | 
      |                                       
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1213 | 
      |                                       
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1224 | 
      |                                       
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1250 | 
      |                                       
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1267 | 
      |                                       
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1276 | 
      |                                       
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1281 | 
      |                                       
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1302 | 
      |                                       
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1305 | 
      |                                       
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1312 | 
      |                                       
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1316 | 
      |                                       
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1326 | 
      |                                       
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1344 | 
      |                                       
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1349 | 
      |                                       
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1386 | 
      |                                       
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1395 | 
      |                                       
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1402 | 
      |                                       
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                       
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1446 | 
      |                                       
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1454 | 
      |                                       
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1499 | 
      |                                       
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                 
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1543 | 
      |                                       
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1553 | 
      |                                       
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1556 | 
      |                                       
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1560 | 
      |                                       
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1564 | 
      |                                       
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1575 | 
      |                                       
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1591 | 
      |                                       
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1594 | 
      |                                       
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1608 | 
      |                                       
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1615 | 
      |                                       
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1619 | 
      |                                       
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                       
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~      
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                       
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                       
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                
 1663 | 
      |                                       
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1694 | 
      |                                       
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1700 | 
      |                                       
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1724 | 
      |                                       
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1742 | 
      |                                       
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1751 | 
      |                                       
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1757 | 
      |                                       
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1768 | 
      |                                       
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1775 | 
      |                                       
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1782 | 
      |                                       
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1788 | 
      |                                       
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1797 | 
      |                                       
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1803 | 
      |                                       
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1807 | 
      |                                       
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1815 | 
      |                                       
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1819 | 
      |                                       
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1824 | 
      |                                       
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1829 | 
      |                                       
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1834 | 
      |                                       
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                       
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1844 | 
      |                                       
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                       
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~          
 1862 | 
      |                                       
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                       
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::DiskWriter>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::PeakMeter>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::PeakMeter>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::PeakMeter>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::PeakMeter>; T = std::shared_ptr<ARDOUR::PeakMeter>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PeakMeter>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PeakMeter>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::PeakMeter; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::PeakMeter; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1877:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1137 | 
      |                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1146 | 
      |                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1160 | 
      |                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1166 | 
      |                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1176 | 
      |                                      
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~ 
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1193 | 
      |                                      
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                   
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1206 | 
      |                                      
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1210 | 
      |                                      
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1213 | 
      |                                      
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1224 | 
      |                                      
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1250 | 
      |                                      
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1267 | 
      |                                      
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1276 | 
      |                                      
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1281 | 
      |                                      
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1302 | 
      |                                      
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1305 | 
      |                                      
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1312 | 
      |                                      
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1316 | 
      |                                      
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1326 | 
      |                                      
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1344 | 
      |                                      
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1349 | 
      |                                      
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1386 | 
      |                                      
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1395 | 
      |                                      
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1402 | 
      |                                      
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                      
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1446 | 
      |                                      
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1454 | 
      |                                      
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1499 | 
      |                                      
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                               
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1543 | 
      |                                      
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1553 | 
      |                                      
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1556 | 
      |                                      
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1560 | 
      |                                      
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1564 | 
      |                                      
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1575 | 
      |                                      
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1591 | 
      |                                      
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1594 | 
      |                                      
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1608 | 
      |                                      
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1615 | 
      |                                      
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1619 | 
      |                                      
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                      
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~     
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                      
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                      
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                               
 1663 | 
      |                                      
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1694 | 
      |                                      
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1700 | 
      |                                      
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1724 | 
      |                                      
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1742 | 
      |                                      
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1751 | 
      |                                      
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1757 | 
      |                                      
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1768 | 
      |                                      
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1775 | 
      |                                      
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1782 | 
      |                                      
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1788 | 
      |                                      
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1797 | 
      |                                      
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1803 | 
      |                                      
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1807 | 
      |                                      
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1815 | 
      |                                      
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1819 | 
      |                                      
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1824 | 
      |                                      
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1829 | 
      |                                      
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1834 | 
      |                                      
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                      
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1844 | 
      |                                      
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                      
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1862 | 
      |                                      
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                      
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::PeakMeter>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::PeakMeter>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::PeakMeter>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::PeakMeter>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::PeakMeter>; T = std::shared_ptr<const ARDOUR::PeakMeter>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::PeakMeter>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::PeakMeter>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::PeakMeter; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::PeakMeter; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1877:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1137 | 
      |                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1146 | 
      |                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1160 | 
      |                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1166 | 
      |                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1176 | 
      |                                      
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~ 
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1193 | 
      |                                      
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                   
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1206 | 
      |                                      
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1210 | 
      |                                      
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1213 | 
      |                                      
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1224 | 
      |                                      
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1250 | 
      |                                      
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1267 | 
      |                                      
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1276 | 
      |                                      
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1281 | 
      |                                      
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1302 | 
      |                                      
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1305 | 
      |                                      
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1312 | 
      |                                      
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1316 | 
      |                                      
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1326 | 
      |                                      
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1344 | 
      |                                      
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1349 | 
      |                                      
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1386 | 
      |                                      
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1395 | 
      |                                      
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1402 | 
      |                                      
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                      
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1446 | 
      |                                      
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1454 | 
      |                                      
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1499 | 
      |                                      
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                               
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1543 | 
      |                                      
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1553 | 
      |                                      
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1556 | 
      |                                      
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1560 | 
      |                                      
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1564 | 
      |                                      
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1575 | 
      |                                      
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1591 | 
      |                                      
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1594 | 
      |                                      
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1608 | 
      |                                      
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1615 | 
      |                                      
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1619 | 
      |                                      
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                      
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~     
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                      
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                      
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                               
 1663 | 
      |                                      
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1694 | 
      |                                      
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1700 | 
      |                                      
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1724 | 
      |                                      
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1742 | 
      |                                      
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1751 | 
      |                                      
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1757 | 
      |                                      
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1768 | 
      |                                      
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1775 | 
      |                                      
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1782 | 
      |                                      
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1788 | 
      |                                      
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1797 | 
      |                                      
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1803 | 
      |                                      
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1807 | 
      |                                      
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1815 | 
      |                                      
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1819 | 
      |                                      
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1824 | 
      |                                      
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1829 | 
      |                                      
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1834 | 
      |                                      
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                      
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1844 | 
      |                                      
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                      
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1862 | 
      |                                      
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                      
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::PeakMeter>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::MonitorProcessor>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::MonitorProcessor>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::MonitorProcessor>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::MonitorProcessor>; T = std::shared_ptr<ARDOUR::MonitorProcessor>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MonitorProcessor>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MonitorProcessor>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::MonitorProcessor; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MonitorProcessor; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1878:30:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1126 | 
      |                                             
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                             
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                      
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1137 | 
      |                                             
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1146 | 
      |                                             
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1160 | 
      |                                             
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~   
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~            
 1166 | 
      |                                             
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1176 | 
      |                                             
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~        
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~            
 1193 | 
      |                                             
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                          
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1206 | 
      |                                             
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1210 | 
      |                                             
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1213 | 
      |                                             
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1224 | 
      |                                             
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1250 | 
      |                                             
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1267 | 
      |                                             
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1276 | 
      |                                             
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1281 | 
      |                                             
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1302 | 
      |                                             
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1305 | 
      |                                             
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1312 | 
      |                                             
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1316 | 
      |                                             
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1326 | 
      |                                             
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1344 | 
      |                                             
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1349 | 
      |                                             
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1386 | 
      |                                             
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1395 | 
      |                                             
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1402 | 
      |                                             
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                             
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1446 | 
      |                                             
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1454 | 
      |                                             
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1499 | 
      |                                             
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                       
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                      
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1543 | 
      |                                             
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1553 | 
      |                                             
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1556 | 
      |                                             
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1560 | 
      |                                             
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1564 | 
      |                                             
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1575 | 
      |                                             
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1591 | 
      |                                             
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1594 | 
      |                                             
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1608 | 
      |                                             
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1615 | 
      |                                             
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1619 | 
      |                                             
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                             
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~            
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                             
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                             
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                      
 1663 | 
      |                                             
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1694 | 
      |                                             
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1700 | 
      |                                             
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1724 | 
      |                                             
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1742 | 
      |                                             
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1751 | 
      |                                             
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1757 | 
      |                                             
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1768 | 
      |                                             
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1775 | 
      |                                             
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1782 | 
      |                                             
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1788 | 
      |                                             
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1797 | 
      |                                             
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1803 | 
      |                                             
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1807 | 
      |                                             
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1815 | 
      |                                             
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1819 | 
      |                                             
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1824 | 
      |                                             
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1829 | 
      |                                             
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1834 | 
      |                                             
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                             
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1844 | 
      |                                             
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                             
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1862 | 
      |                                             
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                             
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1878 |                 .addCast<MonitorProcessor> ("to_monitorprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::MonitorProcessor>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::MonitorProcessor>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::MonitorProcessor>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::MonitorProcessor>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::MonitorProcessor>; T = std::shared_ptr<const ARDOUR::MonitorProcessor>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MonitorProcessor>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::MonitorProcessor>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::MonitorProcessor; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::MonitorProcessor; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1878:30:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1126 | 
      |                                             
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                             
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                      
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1137 | 
      |                                             
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1146 | 
      |                                             
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1160 | 
      |                                             
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~   
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~            
 1166 | 
      |                                             
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1176 | 
      |                                             
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~        
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~            
 1193 | 
      |                                             
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                          
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1206 | 
      |                                             
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1210 | 
      |                                             
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1213 | 
      |                                             
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1224 | 
      |                                             
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1250 | 
      |                                             
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1267 | 
      |                                             
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1276 | 
      |                                             
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1281 | 
      |                                             
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1302 | 
      |                                             
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1305 | 
      |                                             
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1312 | 
      |                                             
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1316 | 
      |                                             
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1326 | 
      |                                             
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1344 | 
      |                                             
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1349 | 
      |                                             
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1386 | 
      |                                             
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1395 | 
      |                                             
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1402 | 
      |                                             
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                             
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1446 | 
      |                                             
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1454 | 
      |                                             
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1499 | 
      |                                             
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                       
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                      
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1543 | 
      |                                             
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1553 | 
      |                                             
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1556 | 
      |                                             
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1560 | 
      |                                             
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1564 | 
      |                                             
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1575 | 
      |                                             
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1591 | 
      |                                             
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1594 | 
      |                                             
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1608 | 
      |                                             
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1615 | 
      |                                             
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1619 | 
      |                                             
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                             
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~            
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                             
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                             
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                      
 1663 | 
      |                                             
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1694 | 
      |                                             
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1700 | 
      |                                             
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1724 | 
      |                                             
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1742 | 
      |                                             
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1751 | 
      |                                             
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1757 | 
      |                                             
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1768 | 
      |                                             
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1775 | 
      |                                             
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1782 | 
      |                                             
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1788 | 
      |                                             
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1797 | 
      |                                             
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1803 | 
      |                                             
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1807 | 
      |                                             
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1815 | 
      |                                             
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1819 | 
      |                                             
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1824 | 
      |                                             
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1829 | 
      |                                             
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1834 | 
      |                                             
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                             
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1844 | 
      |                                             
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                             
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~      
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~                
 1862 | 
      |                                             
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                             
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~    
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1878 |                 .addCast<MonitorProcessor> ("to_monitorprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::MonitorProcessor>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Send>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Send>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Send>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Send>; T = std::shared_ptr<ARDOUR::Send>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Send>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Send>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::Send; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::Send; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1879:18:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                 
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                 
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                          
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1137 | 
      |                                 
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1146 | 
      |                                 
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1160 | 
      |                                 
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                                 
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1176 | 
      |                                 
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                                 
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~              
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1206 | 
      |                                 
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1210 | 
      |                                 
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1213 | 
      |                                 
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1224 | 
      |                                 
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1250 | 
      |                                 
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1267 | 
      |                                 
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1276 | 
      |                                 
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1281 | 
      |                                 
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1302 | 
      |                                 
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1305 | 
      |                                 
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1312 | 
      |                                 
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1316 | 
      |                                 
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1326 | 
      |                                 
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1344 | 
      |                                 
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1349 | 
      |                                 
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1386 | 
      |                                 
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1395 | 
      |                                 
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1402 | 
      |                                 
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                 
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1446 | 
      |                                 
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1454 | 
      |                                 
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1499 | 
      |                                 
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                           
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                          
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1543 | 
      |                                 
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1553 | 
      |                                 
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1556 | 
      |                                 
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1560 | 
      |                                 
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1564 | 
      |                                 
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1575 | 
      |                                 
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1591 | 
      |                                 
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1594 | 
      |                                 
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1608 | 
      |                                 
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1615 | 
      |                                 
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1619 | 
      |                                 
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                 
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                 
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                 
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                          
 1663 | 
      |                                 
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1694 | 
      |                                 
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1700 | 
      |                                 
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1724 | 
      |                                 
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1742 | 
      |                                 
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1751 | 
      |                                 
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1757 | 
      |                                 
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1768 | 
      |                                 
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1775 | 
      |                                 
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1782 | 
      |                                 
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1788 | 
      |                                 
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1797 | 
      |                                 
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1803 | 
      |                                 
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1807 | 
      |                                 
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1815 | 
      |                                 
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1819 | 
      |                                 
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1824 | 
      |                                 
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1829 | 
      |                                 
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1834 | 
      |                                 
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                 
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1844 | 
      |                                 
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                 
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1862 | 
      |                                 
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                 
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1878 |                 .addCast<MonitorProcessor> ("to_monitorprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1879 |                 .addCast<Send> ("to_send")
      |                 ~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Send>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::Send>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::Send>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::Send>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::Send>; T = std::shared_ptr<const ARDOUR::Send>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::Send>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::Send>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::Send; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::Send; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1879:18:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                 
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                 
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                          
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1137 | 
      |                                 
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1146 | 
      |                                 
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1160 | 
      |                                 
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                                 
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1176 | 
      |                                 
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                                 
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~              
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1206 | 
      |                                 
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1210 | 
      |                                 
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1213 | 
      |                                 
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1224 | 
      |                                 
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1250 | 
      |                                 
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1267 | 
      |                                 
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1276 | 
      |                                 
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1281 | 
      |                                 
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1302 | 
      |                                 
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1305 | 
      |                                 
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1312 | 
      |                                 
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1316 | 
      |                                 
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1326 | 
      |                                 
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1344 | 
      |                                 
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1349 | 
      |                                 
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1386 | 
      |                                 
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1395 | 
      |                                 
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1402 | 
      |                                 
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                 
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1446 | 
      |                                 
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1454 | 
      |                                 
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1499 | 
      |                                 
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                           
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                          
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1543 | 
      |                                 
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1553 | 
      |                                 
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1556 | 
      |                                 
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1560 | 
      |                                 
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1564 | 
      |                                 
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1575 | 
      |                                 
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1591 | 
      |                                 
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1594 | 
      |                                 
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1608 | 
      |                                 
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1615 | 
      |                                 
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1619 | 
      |                                 
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                 
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                 
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                 
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                          
 1663 | 
      |                                 
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1694 | 
      |                                 
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1700 | 
      |                                 
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1724 | 
      |                                 
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1742 | 
      |                                 
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1751 | 
      |                                 
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1757 | 
      |                                 
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1768 | 
      |                                 
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1775 | 
      |                                 
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1782 | 
      |                                 
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1788 | 
      |                                 
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1797 | 
      |                                 
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1803 | 
      |                                 
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1807 | 
      |                                 
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1815 | 
      |                                 
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1819 | 
      |                                 
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1824 | 
      |                                 
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1829 | 
      |                                 
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1834 | 
      |                                 
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                 
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1844 | 
      |                                 
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                 
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~    
 1862 | 
      |                                 
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                 
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1878 |                 .addCast<MonitorProcessor> ("to_monitorprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1879 |                 .addCast<Send> ("to_send")
      |                 ~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::Send>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::SurroundSend>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::SurroundSend>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::SurroundSend>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::SurroundSend>; T = std::shared_ptr<ARDOUR::SurroundSend>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SurroundSend>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SurroundSend>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::SurroundSend; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::SurroundSend; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1880:26:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                         
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                         
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                  
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1137 | 
      |                                         
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1146 | 
      |                                         
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1160 | 
      |                                         
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1166 | 
      |                                         
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1176 | 
      |                                         
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~    
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1193 | 
      |                                         
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                      
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1206 | 
      |                                         
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1210 | 
      |                                         
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1213 | 
      |                                         
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1224 | 
      |                                         
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1250 | 
      |                                         
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1267 | 
      |                                         
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1276 | 
      |                                         
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1281 | 
      |                                         
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1302 | 
      |                                         
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1305 | 
      |                                         
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1312 | 
      |                                         
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1316 | 
      |                                         
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1326 | 
      |                                         
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1344 | 
      |                                         
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1349 | 
      |                                         
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1386 | 
      |                                         
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1395 | 
      |                                         
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1402 | 
      |                                         
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                         
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1446 | 
      |                                         
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1454 | 
      |                                         
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1499 | 
      |                                         
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                   
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                  
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1543 | 
      |                                         
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1553 | 
      |                                         
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1556 | 
      |                                         
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1560 | 
      |                                         
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1564 | 
      |                                         
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1575 | 
      |                                         
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1591 | 
      |                                         
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1594 | 
      |                                         
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1608 | 
      |                                         
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1615 | 
      |                                         
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1619 | 
      |                                         
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                         
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~        
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                         
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                         
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                  
 1663 | 
      |                                         
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1694 | 
      |                                         
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1700 | 
      |                                         
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1724 | 
      |                                         
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1742 | 
      |                                         
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1751 | 
      |                                         
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1757 | 
      |                                         
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1768 | 
      |                                         
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1775 | 
      |                                         
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1782 | 
      |                                         
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1788 | 
      |                                         
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1797 | 
      |                                         
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1803 | 
      |                                         
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1807 | 
      |                                         
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1815 | 
      |                                         
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1819 | 
      |                                         
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1824 | 
      |                                         
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1829 | 
      |                                         
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1834 | 
      |                                         
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                         
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1844 | 
      |                                         
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                         
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1862 | 
      |                                         
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                         
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1878 |                 .addCast<MonitorProcessor> ("to_monitorprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1879 |                 .addCast<Send> ("to_send")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1880 |                 .addCast<SurroundSend> ("to_surroundsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::SurroundSend>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::SurroundSend>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::SurroundSend>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::SurroundSend>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::SurroundSend>; T = std::shared_ptr<const ARDOUR::SurroundSend>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::SurroundSend>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::SurroundSend>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::SurroundSend; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::SurroundSend; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1880:26:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                         
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                         
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                  
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1137 | 
      |                                         
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1146 | 
      |                                         
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1160 | 
      |                                         
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1166 | 
      |                                         
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1176 | 
      |                                         
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~    
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1193 | 
      |                                         
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                      
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1206 | 
      |                                         
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1210 | 
      |                                         
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1213 | 
      |                                         
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1224 | 
      |                                         
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1250 | 
      |                                         
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1267 | 
      |                                         
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1276 | 
      |                                         
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1281 | 
      |                                         
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1302 | 
      |                                         
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1305 | 
      |                                         
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1312 | 
      |                                         
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1316 | 
      |                                         
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1326 | 
      |                                         
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1344 | 
      |                                         
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1349 | 
      |                                         
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1386 | 
      |                                         
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1395 | 
      |                                         
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1402 | 
      |                                         
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                         
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1446 | 
      |                                         
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1454 | 
      |                                         
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1499 | 
      |                                         
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                   
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                  
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1543 | 
      |                                         
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1553 | 
      |                                         
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1556 | 
      |                                         
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1560 | 
      |                                         
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1564 | 
      |                                         
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1575 | 
      |                                         
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1591 | 
      |                                         
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1594 | 
      |                                         
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1608 | 
      |                                         
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1615 | 
      |                                         
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1619 | 
      |                                         
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                         
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~        
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                         
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                         
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                  
 1663 | 
      |                                         
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1694 | 
      |                                         
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1700 | 
      |                                         
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1724 | 
      |                                         
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1742 | 
      |                                         
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1751 | 
      |                                         
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1757 | 
      |                                         
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1768 | 
      |                                         
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1775 | 
      |                                         
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1782 | 
      |                                         
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1788 | 
      |                                         
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1797 | 
      |                                         
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1803 | 
      |                                         
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1807 | 
      |                                         
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1815 | 
      |                                         
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1819 | 
      |                                         
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1824 | 
      |                                         
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1829 | 
      |                                         
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1834 | 
      |                                         
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                         
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1844 | 
      |                                         
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                         
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1862 | 
      |                                         
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                         
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1878 |                 .addCast<MonitorProcessor> ("to_monitorprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1879 |                 .addCast<Send> ("to_send")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1880 |                 .addCast<SurroundSend> ("to_surroundsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::SurroundSend>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::InternalSend>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::InternalSend>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::InternalSend>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::InternalSend>; T = std::shared_ptr<ARDOUR::InternalSend>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::InternalSend>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::InternalSend>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::InternalSend; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::InternalSend; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1881:26:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                         
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                         
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                  
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1137 | 
      |                                         
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1146 | 
      |                                         
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1160 | 
      |                                         
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1166 | 
      |                                         
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1176 | 
      |                                         
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~    
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1193 | 
      |                                         
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                      
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1206 | 
      |                                         
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1210 | 
      |                                         
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1213 | 
      |                                         
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1224 | 
      |                                         
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1250 | 
      |                                         
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1267 | 
      |                                         
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1276 | 
      |                                         
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1281 | 
      |                                         
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1302 | 
      |                                         
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1305 | 
      |                                         
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1312 | 
      |                                         
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1316 | 
      |                                         
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1326 | 
      |                                         
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1344 | 
      |                                         
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1349 | 
      |                                         
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1386 | 
      |                                         
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1395 | 
      |                                         
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1402 | 
      |                                         
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                         
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1446 | 
      |                                         
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1454 | 
      |                                         
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1499 | 
      |                                         
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                   
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                  
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1543 | 
      |                                         
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1553 | 
      |                                         
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1556 | 
      |                                         
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1560 | 
      |                                         
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1564 | 
      |                                         
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1575 | 
      |                                         
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1591 | 
      |                                         
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1594 | 
      |                                         
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1608 | 
      |                                         
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1615 | 
      |                                         
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1619 | 
      |                                         
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                         
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~        
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                         
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                         
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                  
 1663 | 
      |                                         
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1694 | 
      |                                         
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1700 | 
      |                                         
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1724 | 
      |                                         
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1742 | 
      |                                         
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1751 | 
      |                                         
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1757 | 
      |                                         
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1768 | 
      |                                         
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1775 | 
      |                                         
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1782 | 
      |                                         
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1788 | 
      |                                         
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1797 | 
      |                                         
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1803 | 
      |                                         
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1807 | 
      |                                         
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1815 | 
      |                                         
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1819 | 
      |                                         
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1824 | 
      |                                         
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1829 | 
      |                                         
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1834 | 
      |                                         
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                         
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1844 | 
      |                                         
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                         
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1862 | 
      |                                         
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                         
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1878 |                 .addCast<MonitorProcessor> ("to_monitorprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1879 |                 .addCast<Send> ("to_send")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1880 |                 .addCast<SurroundSend> ("to_surroundsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1881 |                 .addCast<InternalSend> ("to_internalsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::InternalSend>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::InternalSend>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::InternalSend>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::InternalSend>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::InternalSend>; T = std::shared_ptr<const ARDOUR::InternalSend>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::InternalSend>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::InternalSend>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::InternalSend; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::InternalSend; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1881:26:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                         
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                         
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                  
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1137 | 
      |                                         
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1146 | 
      |                                         
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1160 | 
      |                                         
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1166 | 
      |                                         
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1176 | 
      |                                         
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~    
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~        
 1193 | 
      |                                         
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                      
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1206 | 
      |                                         
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1210 | 
      |                                         
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1213 | 
      |                                         
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1224 | 
      |                                         
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1250 | 
      |                                         
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1267 | 
      |                                         
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1276 | 
      |                                         
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1281 | 
      |                                         
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1302 | 
      |                                         
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1305 | 
      |                                         
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1312 | 
      |                                         
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1316 | 
      |                                         
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1326 | 
      |                                         
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1344 | 
      |                                         
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1349 | 
      |                                         
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1386 | 
      |                                         
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1395 | 
      |                                         
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1402 | 
      |                                         
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                         
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1446 | 
      |                                         
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1454 | 
      |                                         
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1499 | 
      |                                         
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                   
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                  
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1543 | 
      |                                         
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1553 | 
      |                                         
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1556 | 
      |                                         
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1560 | 
      |                                         
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1564 | 
      |                                         
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1575 | 
      |                                         
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1591 | 
      |                                         
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1594 | 
      |                                         
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1608 | 
      |                                         
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1615 | 
      |                                         
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1619 | 
      |                                         
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                         
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~        
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                         
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                         
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                  
 1663 | 
      |                                         
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1694 | 
      |                                         
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1700 | 
      |                                         
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1724 | 
      |                                         
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1742 | 
      |                                         
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1751 | 
      |                                         
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1757 | 
      |                                         
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1768 | 
      |                                         
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1775 | 
      |                                         
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1782 | 
      |                                         
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1788 | 
      |                                         
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1797 | 
      |                                         
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1803 | 
      |                                         
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1807 | 
      |                                         
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1815 | 
      |                                         
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1819 | 
      |                                         
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1824 | 
      |                                         
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1829 | 
      |                                         
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1834 | 
      |                                         
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                         
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1844 | 
      |                                         
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                         
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~  
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~            
 1862 | 
      |                                         
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                         
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1878 |                 .addCast<MonitorProcessor> ("to_monitorprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1879 |                 .addCast<Send> ("to_send")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1880 |                 .addCast<SurroundSend> ("to_surroundsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1881 |                 .addCast<InternalSend> ("to_internalsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::InternalSend>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::PolarityProcessor>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::PolarityProcessor>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::PolarityProcessor>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::PolarityProcessor>; T = std::shared_ptr<ARDOUR::PolarityProcessor>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PolarityProcessor>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PolarityProcessor>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::PolarityProcessor; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::PolarityProcessor; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1882:31:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1126 | 
      |                                              
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                              
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~       
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                       
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1137 | 
      |                                              
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1146 | 
      |                                              
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~     
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1160 | 
      |                                              
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~    
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~       
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~             
 1166 | 
      |                                              
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~       
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1176 | 
      |                                              
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~         
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~             
 1193 | 
      |                                              
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                           
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1206 | 
      |                                              
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1210 | 
      |                                              
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1213 | 
      |                                              
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1224 | 
      |                                              
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1250 | 
      |                                              
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1267 | 
      |                                              
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1276 | 
      |                                              
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1281 | 
      |                                              
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1302 | 
      |                                              
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1305 | 
      |                                              
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1312 | 
      |                                              
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1316 | 
      |                                              
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1326 | 
      |                                              
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1344 | 
      |                                              
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1349 | 
      |                                              
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1386 | 
      |                                              
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1395 | 
      |                                              
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1402 | 
      |                                              
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~     
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                              
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1446 | 
      |                                              
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1454 | 
      |                                              
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1499 | 
      |                                              
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                        
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                       
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1543 | 
      |                                              
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1553 | 
      |                                              
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1556 | 
      |                                              
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1560 | 
      |                                              
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1564 | 
      |                                              
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1575 | 
      |                                              
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~     
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1591 | 
      |                                              
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1594 | 
      |                                              
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1608 | 
      |                                              
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1615 | 
      |                                              
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1619 | 
      |                                              
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                              
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~             
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                              
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                              
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                       
 1663 | 
      |                                              
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~     
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1694 | 
      |                                              
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1700 | 
      |                                              
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1724 | 
      |                                              
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1742 | 
      |                                              
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1751 | 
      |                                              
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1757 | 
      |                                              
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1768 | 
      |                                              
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1775 | 
      |                                              
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1782 | 
      |                                              
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1788 | 
      |                                              
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1797 | 
      |                                              
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1803 | 
      |                                              
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1807 | 
      |                                              
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1815 | 
      |                                              
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1819 | 
      |                                              
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1824 | 
      |                                              
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1829 | 
      |                                              
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1834 | 
      |                                              
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                              
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~       
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1844 | 
      |                                              
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                              
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~       
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1862 | 
      |                                              
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                              
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~     
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1878 |                 .addCast<MonitorProcessor> ("to_monitorprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1879 |                 .addCast<Send> ("to_send")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1880 |                 .addCast<SurroundSend> ("to_surroundsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1881 |                 .addCast<InternalSend> ("to_internalsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1882 |                 .addCast<PolarityProcessor> ("to_polarityprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::PolarityProcessor>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::PolarityProcessor>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::PolarityProcessor>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::PolarityProcessor>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::PolarityProcessor>; T = std::shared_ptr<const ARDOUR::PolarityProcessor>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::PolarityProcessor>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::PolarityProcessor>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::PolarityProcessor; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::PolarityProcessor; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1882:31:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1126 | 
      |                                              
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                              
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~       
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                                       
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1137 | 
      |                                              
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1146 | 
      |                                              
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~     
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1160 | 
      |                                              
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~    
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~       
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~             
 1166 | 
      |                                              
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~       
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1176 | 
      |                                              
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~         
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~             
 1193 | 
      |                                              
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                           
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1206 | 
      |                                              
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1210 | 
      |                                              
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1213 | 
      |                                              
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1224 | 
      |                                              
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1250 | 
      |                                              
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1267 | 
      |                                              
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1276 | 
      |                                              
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1281 | 
      |                                              
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1302 | 
      |                                              
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1305 | 
      |                                              
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1312 | 
      |                                              
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1316 | 
      |                                              
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1326 | 
      |                                              
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1344 | 
      |                                              
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1349 | 
      |                                              
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1386 | 
      |                                              
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1395 | 
      |                                              
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1402 | 
      |                                              
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~     
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                              
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1446 | 
      |                                              
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1454 | 
      |                                              
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1499 | 
      |                                              
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                        
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                                       
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1543 | 
      |                                              
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1553 | 
      |                                              
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1556 | 
      |                                              
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1560 | 
      |                                              
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1564 | 
      |                                              
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1575 | 
      |                                              
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~     
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1591 | 
      |                                              
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1594 | 
      |                                              
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1608 | 
      |                                              
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1615 | 
      |                                              
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1619 | 
      |                                              
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                              
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~             
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                              
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                              
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                                       
 1663 | 
      |                                              
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~     
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1694 | 
      |                                              
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1700 | 
      |                                              
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1724 | 
      |                                              
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1742 | 
      |                                              
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1751 | 
      |                                              
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1757 | 
      |                                              
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1768 | 
      |                                              
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1775 | 
      |                                              
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1782 | 
      |                                              
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1788 | 
      |                                              
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1797 | 
      |                                              
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1803 | 
      |                                              
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1807 | 
      |                                              
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1815 | 
      |                                              
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1819 | 
      |                                              
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1824 | 
      |                                              
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1829 | 
      |                                              
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1834 | 
      |                                              
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                              
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~       
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1844 | 
      |                                              
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                              
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~       
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~                 
 1862 | 
      |                                              
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                              
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~     
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1878 |                 .addCast<MonitorProcessor> ("to_monitorprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1879 |                 .addCast<Send> ("to_send")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1880 |                 .addCast<SurroundSend> ("to_surroundsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1881 |                 .addCast<InternalSend> ("to_internalsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1882 |                 .addCast<PolarityProcessor> ("to_polarityprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::PolarityProcessor>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::DelayLine>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::DelayLine>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::DelayLine>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::DelayLine>; T = std::shared_ptr<ARDOUR::DelayLine>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::DelayLine>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::DelayLine>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Processor; R = ARDOUR::DelayLine; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::DelayLine; T = ARDOUR::Processor]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1883:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1137 | 
      |                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1146 | 
      |                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1160 | 
      |                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1166 | 
      |                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1176 | 
      |                                      
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~ 
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1193 | 
      |                                      
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                   
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1206 | 
      |                                      
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1210 | 
      |                                      
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1213 | 
      |                                      
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1224 | 
      |                                      
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1250 | 
      |                                      
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1267 | 
      |                                      
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1276 | 
      |                                      
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1281 | 
      |                                      
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1302 | 
      |                                      
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1305 | 
      |                                      
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1312 | 
      |                                      
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1316 | 
      |                                      
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1326 | 
      |                                      
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1344 | 
      |                                      
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1349 | 
      |                                      
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1386 | 
      |                                      
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1395 | 
      |                                      
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1402 | 
      |                                      
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                      
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1446 | 
      |                                      
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1454 | 
      |                                      
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1499 | 
      |                                      
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                               
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1543 | 
      |                                      
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1553 | 
      |                                      
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1556 | 
      |                                      
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1560 | 
      |                                      
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1564 | 
      |                                      
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1575 | 
      |                                      
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1591 | 
      |                                      
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1594 | 
      |                                      
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1608 | 
      |                                      
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1615 | 
      |                                      
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1619 | 
      |                                      
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                      
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~     
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                      
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                      
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                               
 1663 | 
      |                                      
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1694 | 
      |                                      
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1700 | 
      |                                      
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1724 | 
      |                                      
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1742 | 
      |                                      
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1751 | 
      |                                      
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1757 | 
      |                                      
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1768 | 
      |                                      
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1775 | 
      |                                      
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1782 | 
      |                                      
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1788 | 
      |                                      
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1797 | 
      |                                      
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1803 | 
      |                                      
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1807 | 
      |                                      
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1815 | 
      |                                      
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1819 | 
      |                                      
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1824 | 
      |                                      
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1829 | 
      |                                      
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1834 | 
      |                                      
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                      
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1844 | 
      |                                      
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                      
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1862 | 
      |                                      
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                      
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1878 |                 .addCast<MonitorProcessor> ("to_monitorprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1879 |                 .addCast<Send> ("to_send")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1880 |                 .addCast<SurroundSend> ("to_surroundsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1881 |                 .addCast<InternalSend> ("to_internalsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1882 |                 .addCast<PolarityProcessor> ("to_polarityprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1883 |                 .addCast<DelayLine> ("to_delayline")
      |                 ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::DelayLine>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::DelayLine>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::DelayLine>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::DelayLine>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::DelayLine>; T = std::shared_ptr<const ARDOUR::DelayLine>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::DelayLine>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::DelayLine>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Processor; R = const ARDOUR::DelayLine; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::DelayLine; T = ARDOUR::Processor]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1883:23:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                                      
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                                      
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                               
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1137 | 
      |                                      
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1146 | 
      |                                      
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1160 | 
      |                                      
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1166 | 
      |                                      
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1176 | 
      |                                      
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~ 
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~     
 1193 | 
      |                                      
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~                   
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1206 | 
      |                                      
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1210 | 
      |                                      
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1213 | 
      |                                      
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1224 | 
      |                                      
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1250 | 
      |                                      
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1267 | 
      |                                      
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1276 | 
      |                                      
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1281 | 
      |                                      
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1302 | 
      |                                      
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1305 | 
      |                                      
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1312 | 
      |                                      
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1316 | 
      |                                      
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1326 | 
      |                                      
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1344 | 
      |                                      
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1349 | 
      |                                      
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1386 | 
      |                                      
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1395 | 
      |                                      
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1402 | 
      |                                      
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                                      
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1446 | 
      |                                      
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1454 | 
      |                                      
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1499 | 
      |                                      
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                                
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                               
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1543 | 
      |                                      
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1553 | 
      |                                      
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1556 | 
      |                                      
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1560 | 
      |                                      
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1564 | 
      |                                      
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1575 | 
      |                                      
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1591 | 
      |                                      
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1594 | 
      |                                      
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1608 | 
      |                                      
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1615 | 
      |                                      
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1619 | 
      |                                      
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                                      
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~     
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                                      
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                                      
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                               
 1663 | 
      |                                      
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1694 | 
      |                                      
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1700 | 
      |                                      
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1724 | 
      |                                      
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1742 | 
      |                                      
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1751 | 
      |                                      
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1757 | 
      |                                      
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1768 | 
      |                                      
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1775 | 
      |                                      
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1782 | 
      |                                      
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1788 | 
      |                                      
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1797 | 
      |                                      
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1803 | 
      |                                      
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1807 | 
      |                                      
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1815 | 
      |                                      
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1819 | 
      |                                      
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1824 | 
      |                                      
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1829 | 
      |                                      
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1834 | 
      |                                      
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                                      
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1844 | 
      |                                      
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                                      
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~         
 1862 | 
      |                                      
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                                      
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1878 |                 .addCast<MonitorProcessor> ("to_monitorprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1879 |                 .addCast<Send> ("to_send")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1880 |                 .addCast<SurroundSend> ("to_surroundsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1881 |                 .addCast<InternalSend> ("to_internalsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1882 |                 .addCast<PolarityProcessor> ("to_polarityprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1883 |                 .addCast<DelayLine> ("to_delayline")
      |                 ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::DelayLine>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::LuaProc>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::LuaProc>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::LuaProc>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::LuaProc>; T = std::shared_ptr<ARDOUR::LuaProc>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::LuaProc>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::LuaProc>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::Plugin; R = ARDOUR::LuaProc; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::LuaProc; T = ARDOUR::Plugin]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2012:21:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2001 | 
      |                                    
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~       
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~   
 2010 | 
      |                                    
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::LuaProc>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::LuaProc>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::LuaProc>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::LuaProc>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::LuaProc>; T = std::shared_ptr<const ARDOUR::LuaProc>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::LuaProc>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::LuaProc>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::Plugin; R = const ARDOUR::LuaProc; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::LuaProc; T = ARDOUR::Plugin]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2012:21:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2001 | 
      |                                    
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~       
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~   
 2010 | 
      |                                    
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::LuaProc>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<Evoral::Control>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<Evoral::Control>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<Evoral::Control>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<Evoral::Control>; T = std::shared_ptr<Evoral::Control>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<Evoral::Control>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<Evoral::Control>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::AutomationControl; R = Evoral::Control; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = Evoral::Control; T = ARDOUR::AutomationControl]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2106:29:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2001 | 
      |                                            
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~           
 2010 | 
      |                                            
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2038 | 
      |                                            
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2043 | 
      |                                            
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2072 | 
      |                                            
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2080 | 
      |                                            
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2089 | 
      |                                            
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2098 | 
      |                                            
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2104 | 
      |                                            
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<Evoral::Control>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const Evoral::Control>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const Evoral::Control>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const Evoral::Control>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const Evoral::Control>; T = std::shared_ptr<const Evoral::Control>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const Evoral::Control>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const Evoral::Control>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::AutomationControl; R = const Evoral::Control; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = Evoral::Control; T = ARDOUR::AutomationControl]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2106:29:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2001 | 
      |                                            
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~           
 2010 | 
      |                                            
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2038 | 
      |                                            
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2043 | 
      |                                            
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2072 | 
      |                                            
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2080 | 
      |                                            
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2089 | 
      |                                            
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2098 | 
      |                                            
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~               
 2104 | 
      |                                            
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const Evoral::Control>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::SlavableAutomationControl>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::SlavableAutomationControl>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::SlavableAutomationControl>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::SlavableAutomationControl>; T = std::shared_ptr<ARDOUR::SlavableAutomationControl>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SlavableAutomationControl>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SlavableAutomationControl>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = ARDOUR::AutomationControl; R = ARDOUR::SlavableAutomationControl; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1448:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::SlavableAutomationControl; T = ARDOUR::AutomationControl]'
 1448 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T, U>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2107:39:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2001 | 
      |                                                      
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                     
 2010 | 
      |                                                      
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2038 | 
      |                                                      
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2043 | 
      |                                                      
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2072 | 
      |                                                      
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2080 | 
      |                                                      
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2089 | 
      |                                                      
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2098 | 
      |                                                      
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2104 | 
      |                                                      
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::SlavableAutomationControl>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const ARDOUR::SlavableAutomationControl>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const ARDOUR::SlavableAutomationControl>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const ARDOUR::SlavableAutomationControl>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const ARDOUR::SlavableAutomationControl>; T = std::shared_ptr<const ARDOUR::SlavableAutomationControl>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::SlavableAutomationControl>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const ARDOUR::SlavableAutomationControl>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:386:41:   required from 'static int luabridge::CFunc::CastMemberPtr<T, R>::f(lua_State*) [with T = const ARDOUR::AutomationControl; R = const ARDOUR::SlavableAutomationControl; lua_State = lua_State]'
  386 |       Stack <std::shared_ptr<R> >::push (L, std::dynamic_pointer_cast<R> (t));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1453:28:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addCast(const char*) [with U = ARDOUR::SlavableAutomationControl; T = ARDOUR::AutomationControl]'
 1453 |       lua_pushcclosure (L, &CFunc::CastMemberPtr <T const, U const>::f, 0);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2107:39:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2001 | 
      |                                                      
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                     
 2010 | 
      |                                                      
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2038 | 
      |                                                      
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2043 | 
      |                                                      
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2072 | 
      |                                                      
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2080 | 
      |                                                      
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2089 | 
      |                                                      
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2098 | 
      |                                                      
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                         
 2104 | 
      |                                                      
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const ARDOUR::SlavableAutomationControl>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::AudioTrack> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::AudioTrack> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::AudioTrack> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::shared_ptr<ARDOUR::AudioTrack> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::shared_ptr<ARDOUR::AudioTrack> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::AudioTrack> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<ARDOUR::AudioTrack>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2024:33:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginStdList(const char*) [with T = std::shared_ptr<ARDOUR::AudioTrack>]'
 2024 |     return beginConstStdList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:2242:48:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2001 | 
      |                                                               
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                              
 2010 | 
      |                                                               
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2038 | 
      |                                                               
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2043 | 
      |                                                               
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2072 | 
      |                                                               
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2080 | 
      |                                                               
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2089 | 
      |                                                               
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2098 | 
      |                                                               
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2104 | 
      |                                                               
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2122 | 
      |                                                               
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2133 | 
      |                                                               
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2138 | 
      |                                                               
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2141 | 
      |                                                               
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2145 | 
      |                                                               
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2151 | 
      |                                                               
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2158 | 
      |                                                               
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2163 | 
      |                                                               
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2167 | 
      |                                                               
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2172 | 
      |                                                               
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2179 | 
      |                                                               
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2208 | 
      |                                                               
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2211 | 
      |                                                               
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2214 | 
      |                                                               
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2218 | 
      |                                                               
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2221 | 
      |                                                               
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2224 | 
      |                                                               
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2227 | 
      |                                                               
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2235 | 
      |                                                               
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2240 | 
      |                                                               
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<ARDOUR::AudioTrack> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<ARDOUR::TimelineRange>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<ARDOUR::TimelineRange>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<ARDOUR::TimelineRange>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<ARDOUR::TimelineRange>; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<ARDOUR::TimelineRange>]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<ARDOUR::TimelineRange>]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = ARDOUR::TimelineRange]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2024:33:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginStdList(const char*) [with T = ARDOUR::TimelineRange]'
 2024 |     return beginConstStdList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:2245:33:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2001 | 
      |                                                
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~               
 2010 | 
      |                                                
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2038 | 
      |                                                
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2043 | 
      |                                                
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2072 | 
      |                                                
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2080 | 
      |                                                
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2089 | 
      |                                                
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2098 | 
      |                                                
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2104 | 
      |                                                
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2122 | 
      |                                                
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2133 | 
      |                                                
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2138 | 
      |                                                
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2141 | 
      |                                                
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2145 | 
      |                                                
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2151 | 
      |                                                
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2158 | 
      |                                                
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2163 | 
      |                                                
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2167 | 
      |                                                
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2172 | 
      |                                                
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2179 | 
      |                                                
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2208 | 
      |                                                
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2211 | 
      |                                                
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2214 | 
      |                                                
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2218 | 
      |                                                
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2221 | 
      |                                                
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2224 | 
      |                                                
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2227 | 
      |                                                
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~         
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2235 | 
      |                                                
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2240 | 
      |                                                
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                   
 2244 | 
      |                                                
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<ARDOUR::TimelineRange>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::MidiTrack> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::MidiTrack> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::MidiTrack> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::shared_ptr<ARDOUR::MidiTrack> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::shared_ptr<ARDOUR::MidiTrack> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::MidiTrack> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<ARDOUR::MidiTrack>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2024:33:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginStdList(const char*) [with T = std::shared_ptr<ARDOUR::MidiTrack>]'
 2024 |     return beginConstStdList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:2249:47:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2001 | 
      |                                                              
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                             
 2010 | 
      |                                                              
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2038 | 
      |                                                              
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2043 | 
      |                                                              
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2072 | 
      |                                                              
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2080 | 
      |                                                              
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2089 | 
      |                                                              
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2098 | 
      |                                                              
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2104 | 
      |                                                              
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2122 | 
      |                                                              
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2133 | 
      |                                                              
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2138 | 
      |                                                              
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2141 | 
      |                                                              
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2145 | 
      |                                                              
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2151 | 
      |                                                              
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2158 | 
      |                                                              
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2163 | 
      |                                                              
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2167 | 
      |                                                              
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2172 | 
      |                                                              
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2179 | 
      |                                                              
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2208 | 
      |                                                              
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2211 | 
      |                                                              
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2214 | 
      |                                                              
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2218 | 
      |                                                              
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2221 | 
      |                                                              
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2224 | 
      |                                                              
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2227 | 
      |                                                              
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                       
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2235 | 
      |                                                              
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2240 | 
      |                                                              
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2244 | 
      |                                                              
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2247 | 
      |                                                              
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<ARDOUR::MidiTrack> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Region>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Region>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Region>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Region>; T = std::shared_ptr<ARDOUR::Region>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Region>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Region>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1465:21:   required from 'static int luabridge::CFunc::mapAt(lua_State*) [with K = PBD::ID; V = std::shared_ptr<ARDOUR::Region>; lua_State = lua_State]'
 1465 |     Stack <V>::push (L, (*iter).second);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1966:24:   required from 'luabridge::Namespace::Class<std::map<K, V> > luabridge::Namespace::beginStdMap(const char*) [with K = PBD::ID; V = std::shared_ptr<ARDOUR::Region>]'
 1957 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 1958 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~~~
 1959 |       .addFunction ("empty", (bool (LT::*)()const)&LT::empty)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1960 |       .addFunction ("size", (T_SIZE (LT::*)()const)&LT::size)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1961 |       .addFunction ("clear", (void (LT::*)())&LT::clear)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1962 |       .addFunction ("count", (T_SIZE (LT::*)(const K&) const)&LT::count)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1963 |       .addExtCFunction ("add", &CFunc::tableToMap<K, V>)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1964 |       .addExtCFunction ("iter", &CFunc::mapIter<K, V>)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1965 |       .addExtCFunction ("table", &CFunc::mapToTable<K, V>)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1966 |       .addExtCFunction ("at", &CFunc::mapAt<K, V>);
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2340:51:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2001 | 
      |                                                                  
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                 
 2010 | 
      |                                                                  
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2038 | 
      |                                                                  
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2043 | 
      |                                                                  
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2072 | 
      |                                                                  
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2080 | 
      |                                                                  
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2089 | 
      |                                                                  
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2098 | 
      |                                                                  
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2104 | 
      |                                                                  
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2122 | 
      |                                                                  
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2133 | 
      |                                                                  
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2138 | 
      |                                                                  
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2141 | 
      |                                                                  
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2145 | 
      |                                                                  
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2151 | 
      |                                                                  
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2158 | 
      |                                                                  
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2163 | 
      |                                                                  
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2167 | 
      |                                                                  
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2172 | 
      |                                                                  
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2179 | 
      |                                                                  
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2208 | 
      |                                                                  
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2211 | 
      |                                                                  
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2214 | 
      |                                                                  
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2218 | 
      |                                                                  
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2221 | 
      |                                                                  
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2224 | 
      |                                                                  
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2227 | 
      |                                                                  
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                           
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2235 | 
      |                                                                  
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2240 | 
      |                                                                  
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2244 | 
      |                                                                  
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2247 | 
      |                                                                  
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2251 | 
      |                                                                  
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2255 | 
      |                                                                  
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2259 | 
      |                                                                  
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2263 | 
      |                                                                  
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2267 | 
      |                                                                  
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2272 | 
      |                                                                  
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2278 | 
      |                                                                  
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2283 | 
      |                                                                  
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2288 | 
      |                                                                  
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2292 | 
      |                                                                  
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2296 | 
      |                                                                  
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2300 | 
      |                                                                  
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2304 | 
      |                                                                  
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2308 | 
      |                                                                  
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2312 | 
      |                                                                  
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2316 | 
      |                                                                  
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2320 | 
      |                                                                  
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2324 | 
      |                                                                  
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2328 | 
      |                                                                  
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2332 | 
      |                                                                  
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                     
 2338 | 
      |                                                                  
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Region>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::PortManager::DPM]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::PortManager::DPM]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::PortManager::DPM; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = ARDOUR::PortManager::DPM; T = ARDOUR::PortManager::DPM; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = ARDOUR::PortManager::DPM; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = ARDOUR::PortManager::DPM; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1465:21:   required from 'static int luabridge::CFunc::mapAt(lua_State*) [with K = std::__cxx11::basic_string<char>; V = ARDOUR::PortManager::DPM; lua_State = lua_State]'
 1465 |     Stack <V>::push (L, (*iter).second);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1966:24:   required from 'luabridge::Namespace::Class<std::map<K, V> > luabridge::Namespace::beginStdMap(const char*) [with K = std::__cxx11::basic_string<char>; V = ARDOUR::PortManager::DPM]'
 1957 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 1958 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~~~
 1959 |       .addFunction ("empty", (bool (LT::*)()const)&LT::empty)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1960 |       .addFunction ("size", (T_SIZE (LT::*)()const)&LT::size)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1961 |       .addFunction ("clear", (void (LT::*)())&LT::clear)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1962 |       .addFunction ("count", (T_SIZE (LT::*)(const K&) const)&LT::count)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1963 |       .addExtCFunction ("add", &CFunc::tableToMap<K, V>)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1964 |       .addExtCFunction ("iter", &CFunc::mapIter<K, V>)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1965 |       .addExtCFunction ("table", &CFunc::mapToTable<K, V>)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1966 |       .addExtCFunction ("at", &CFunc::mapAt<K, V>);
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2344:48:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2001 | 
      |                                                               
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                              
 2010 | 
      |                                                               
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2038 | 
      |                                                               
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2043 | 
      |                                                               
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2072 | 
      |                                                               
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2080 | 
      |                                                               
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2089 | 
      |                                                               
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2098 | 
      |                                                               
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2104 | 
      |                                                               
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2122 | 
      |                                                               
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2133 | 
      |                                                               
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2138 | 
      |                                                               
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2141 | 
      |                                                               
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2145 | 
      |                                                               
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2151 | 
      |                                                               
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2158 | 
      |                                                               
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2163 | 
      |                                                               
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2167 | 
      |                                                               
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2172 | 
      |                                                               
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2179 | 
      |                                                               
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2208 | 
      |                                                               
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2211 | 
      |                                                               
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2214 | 
      |                                                               
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2218 | 
      |                                                               
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2221 | 
      |                                                               
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2224 | 
      |                                                               
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2227 | 
      |                                                               
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2235 | 
      |                                                               
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2240 | 
      |                                                               
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2244 | 
      |                                                               
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2247 | 
      |                                                               
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2251 | 
      |                                                               
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2255 | 
      |                                                               
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2259 | 
      |                                                               
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2263 | 
      |                                                               
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2267 | 
      |                                                               
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2272 | 
      |                                                               
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2278 | 
      |                                                               
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2283 | 
      |                                                               
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2288 | 
      |                                                               
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2292 | 
      |                                                               
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2296 | 
      |                                                               
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2300 | 
      |                                                               
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2304 | 
      |                                                               
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2308 | 
      |                                                               
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2312 | 
      |                                                               
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2316 | 
      |                                                               
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2320 | 
      |                                                               
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2324 | 
      |                                                               
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2328 | 
      |                                                               
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2332 | 
      |                                                               
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2338 | 
      |                                                               
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2342 | 
      |                                                               
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::PortManager::DPM*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::PortManager::MPM]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::PortManager::MPM]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::PortManager::MPM; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = ARDOUR::PortManager::MPM; T = ARDOUR::PortManager::MPM; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = ARDOUR::PortManager::MPM; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = ARDOUR::PortManager::MPM; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1465:21:   required from 'static int luabridge::CFunc::mapAt(lua_State*) [with K = std::__cxx11::basic_string<char>; V = ARDOUR::PortManager::MPM; lua_State = lua_State]'
 1465 |     Stack <V>::push (L, (*iter).second);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1966:24:   required from 'luabridge::Namespace::Class<std::map<K, V> > luabridge::Namespace::beginStdMap(const char*) [with K = std::__cxx11::basic_string<char>; V = ARDOUR::PortManager::MPM]'
 1957 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 1958 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~~~
 1959 |       .addFunction ("empty", (bool (LT::*)()const)&LT::empty)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1960 |       .addFunction ("size", (T_SIZE (LT::*)()const)&LT::size)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1961 |       .addFunction ("clear", (void (LT::*)())&LT::clear)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1962 |       .addFunction ("count", (T_SIZE (LT::*)(const K&) const)&LT::count)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1963 |       .addExtCFunction ("add", &CFunc::tableToMap<K, V>)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1964 |       .addExtCFunction ("iter", &CFunc::mapIter<K, V>)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1965 |       .addExtCFunction ("table", &CFunc::mapToTable<K, V>)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1966 |       .addExtCFunction ("at", &CFunc::mapAt<K, V>);
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2348:48:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2001 | 
      |                                                               
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                              
 2010 | 
      |                                                               
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2038 | 
      |                                                               
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2043 | 
      |                                                               
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2072 | 
      |                                                               
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2080 | 
      |                                                               
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2089 | 
      |                                                               
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2098 | 
      |                                                               
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2104 | 
      |                                                               
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2122 | 
      |                                                               
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2133 | 
      |                                                               
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2138 | 
      |                                                               
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2141 | 
      |                                                               
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2145 | 
      |                                                               
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2151 | 
      |                                                               
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2158 | 
      |                                                               
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2163 | 
      |                                                               
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2167 | 
      |                                                               
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2172 | 
      |                                                               
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2179 | 
      |                                                               
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2208 | 
      |                                                               
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2211 | 
      |                                                               
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2214 | 
      |                                                               
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2218 | 
      |                                                               
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2221 | 
      |                                                               
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2224 | 
      |                                                               
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2227 | 
      |                                                               
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2235 | 
      |                                                               
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2240 | 
      |                                                               
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2244 | 
      |                                                               
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2247 | 
      |                                                               
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2251 | 
      |                                                               
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2255 | 
      |                                                               
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2259 | 
      |                                                               
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2263 | 
      |                                                               
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2267 | 
      |                                                               
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2272 | 
      |                                                               
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2278 | 
      |                                                               
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2283 | 
      |                                                               
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2288 | 
      |                                                               
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2292 | 
      |                                                               
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2296 | 
      |                                                               
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2300 | 
      |                                                               
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2304 | 
      |                                                               
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2308 | 
      |                                                               
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2312 | 
      |                                                               
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2316 | 
      |                                                               
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2320 | 
      |                                                               
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2324 | 
      |                                                               
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2328 | 
      |                                                               
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2332 | 
      |                                                               
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2338 | 
      |                                                               
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2342 | 
      |                                                               
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                  
 2346 | 
      |                                                               
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::PortManager::MPM*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Processor> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Processor> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Processor> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::shared_ptr<ARDOUR::Processor> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::shared_ptr<ARDOUR::Processor> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::Processor> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<ARDOUR::Processor>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2024:33:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginStdList(const char*) [with T = std::shared_ptr<ARDOUR::Processor>]'
 2024 |     return beginConstStdList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:2352:47:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2001 | 
      |                                                              
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                             
 2010 | 
      |                                                              
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2038 | 
      |                                                              
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2043 | 
      |                                                              
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2072 | 
      |                                                              
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2080 | 
      |                                                              
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2089 | 
      |                                                              
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2098 | 
      |                                                              
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2104 | 
      |                                                              
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2122 | 
      |                                                              
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2133 | 
      |                                                              
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2138 | 
      |                                                              
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2141 | 
      |                                                              
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2145 | 
      |                                                              
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2151 | 
      |                                                              
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2158 | 
      |                                                              
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2163 | 
      |                                                              
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2167 | 
      |                                                              
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2172 | 
      |                                                              
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2179 | 
      |                                                              
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2208 | 
      |                                                              
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2211 | 
      |                                                              
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2214 | 
      |                                                              
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2218 | 
      |                                                              
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2221 | 
      |                                                              
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2224 | 
      |                                                              
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2227 | 
      |                                                              
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                       
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2235 | 
      |                                                              
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2240 | 
      |                                                              
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2244 | 
      |                                                              
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2247 | 
      |                                                              
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2251 | 
      |                                                              
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2255 | 
      |                                                              
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2259 | 
      |                                                              
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2263 | 
      |                                                              
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2267 | 
      |                                                              
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2272 | 
      |                                                              
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2278 | 
      |                                                              
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2283 | 
      |                                                              
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2288 | 
      |                                                              
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2292 | 
      |                                                              
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2296 | 
      |                                                              
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2300 | 
      |                                                              
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2304 | 
      |                                                              
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2308 | 
      |                                                              
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2312 | 
      |                                                              
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2316 | 
      |                                                              
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2320 | 
      |                                                              
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2324 | 
      |                                                              
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2328 | 
      |                                                              
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2332 | 
      |                                                              
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2338 | 
      |                                                              
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2342 | 
      |                                                              
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2346 | 
      |                                                              
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2350 | 
      |                                                              
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<ARDOUR::Processor> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<ARDOUR::AutomationControl>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2024:33:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginStdList(const char*) [with T = std::shared_ptr<ARDOUR::AutomationControl>]'
 2024 |     return beginConstStdList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:2365:55:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2001 | 
      |                                                                      
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                     
 2010 | 
      |                                                                      
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2038 | 
      |                                                                      
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2043 | 
      |                                                                      
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2072 | 
      |                                                                      
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2080 | 
      |                                                                      
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2089 | 
      |                                                                      
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2098 | 
      |                                                                      
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2104 | 
      |                                                                      
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2122 | 
      |                                                                      
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2133 | 
      |                                                                      
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2138 | 
      |                                                                      
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2141 | 
      |                                                                      
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2145 | 
      |                                                                      
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2151 | 
      |                                                                      
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2158 | 
      |                                                                      
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2163 | 
      |                                                                      
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2167 | 
      |                                                                      
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2172 | 
      |                                                                      
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2179 | 
      |                                                                      
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2208 | 
      |                                                                      
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2211 | 
      |                                                                      
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2214 | 
      |                                                                      
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2218 | 
      |                                                                      
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2221 | 
      |                                                                      
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2224 | 
      |                                                                      
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2227 | 
      |                                                                      
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                               
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2235 | 
      |                                                                      
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2240 | 
      |                                                                      
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2244 | 
      |                                                                      
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2247 | 
      |                                                                      
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2251 | 
      |                                                                      
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2255 | 
      |                                                                      
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2259 | 
      |                                                                      
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2263 | 
      |                                                                      
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2267 | 
      |                                                                      
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2272 | 
      |                                                                      
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2278 | 
      |                                                                      
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2283 | 
      |                                                                      
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2288 | 
      |                                                                      
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2292 | 
      |                                                                      
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2296 | 
      |                                                                      
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2300 | 
      |                                                                      
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2304 | 
      |                                                                      
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2308 | 
      |                                                                      
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2312 | 
      |                                                                      
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2316 | 
      |                                                                      
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2320 | 
      |                                                                      
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2324 | 
      |                                                                      
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2328 | 
      |                                                                      
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2332 | 
      |                                                                      
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2338 | 
      |                                                                      
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2342 | 
      |                                                                      
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2346 | 
      |                                                                      
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2350 | 
      |                                                                      
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2354 | 
      |                                                                      
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2357 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2358 | 
      |                                                                      
 2359 |                 .beginConstStdCPtrList <Location> ("LocationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2360 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2361 | 
      |                                                                      
 2362 |                 .beginConstStdVector <Evoral::Parameter> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2363 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                         
 2364 | 
      |                                                                      
 2365 |                 .beginStdList <std::shared_ptr<AutomationControl> > ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<Evoral::Note<Temporal::Beats> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<Evoral::Note<Temporal::Beats> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<Evoral::Note<Temporal::Beats> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::shared_ptr<Evoral::Note<Temporal::Beats> > >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::shared_ptr<Evoral::Note<Temporal::Beats> > >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::shared_ptr<Evoral::Note<Temporal::Beats> > >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<Evoral::Note<Temporal::Beats> >]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2024:33:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginStdList(const char*) [with T = std::shared_ptr<Evoral::Note<Temporal::Beats> >]'
 2024 |     return beginConstStdList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:2372:68:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                         
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                        
 2001 | 
      |                                                                                   
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                        
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                                  
 2010 | 
      |                                                                                   
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                  
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2038 | 
      |                                                                                   
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2043 | 
      |                                                                                   
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2072 | 
      |                                                                                   
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2080 | 
      |                                                                                   
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2089 | 
      |                                                                                   
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2098 | 
      |                                                                                   
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2104 | 
      |                                                                                   
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2122 | 
      |                                                                                   
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2133 | 
      |                                                                                   
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2138 | 
      |                                                                                   
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2141 | 
      |                                                                                   
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2145 | 
      |                                                                                   
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2151 | 
      |                                                                                   
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2158 | 
      |                                                                                   
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2163 | 
      |                                                                                   
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2167 | 
      |                                                                                   
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2172 | 
      |                                                                                   
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2179 | 
      |                                                                                   
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2208 | 
      |                                                                                   
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2211 | 
      |                                                                                   
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2214 | 
      |                                                                                   
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2218 | 
      |                                                                                   
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2221 | 
      |                                                                                   
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2224 | 
      |                                                                                   
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2227 | 
      |                                                                                   
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                            
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2235 | 
      |                                                                                   
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2240 | 
      |                                                                                   
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2244 | 
      |                                                                                   
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2247 | 
      |                                                                                   
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2251 | 
      |                                                                                   
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2255 | 
      |                                                                                   
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2259 | 
      |                                                                                   
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2263 | 
      |                                                                                   
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2267 | 
      |                                                                                   
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2272 | 
      |                                                                                   
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                     
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2278 | 
      |                                                                                   
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2283 | 
      |                                                                                   
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                    
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2288 | 
      |                                                                                   
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2292 | 
      |                                                                                   
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2296 | 
      |                                                                                   
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2300 | 
      |                                                                                   
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2304 | 
      |                                                                                   
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2308 | 
      |                                                                                   
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2312 | 
      |                                                                                   
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2316 | 
      |                                                                                   
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2320 | 
      |                                                                                   
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2324 | 
      |                                                                                   
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2328 | 
      |                                                                                   
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2332 | 
      |                                                                                   
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2338 | 
      |                                                                                   
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                                       
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2342 | 
      |                                                                                   
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2346 | 
      |                                                                                   
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2350 | 
      |                                                                                   
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2354 | 
      |                                                                                   
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2357 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2358 | 
      |                                                                                   
 2359 |                 .beginConstStdCPtrList <Location> ("LocationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2360 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2361 | 
      |                                                                                   
 2362 |                 .beginConstStdVector <Evoral::Parameter> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2363 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2364 | 
      |                                                                                   
 2365 |                 .beginStdList <std::shared_ptr<AutomationControl> > ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2366 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2367 | 
      |                                                                                   
 2368 |                 .beginPtrStdList <std::shared_ptr<AutomationControl> > ("ControlListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2369 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <AutomationControl> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2370 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                      
 2371 | 
      |                                                                                   
 2372 |                 .beginStdList <std::shared_ptr<Evoral::Note<Temporal::Beats> > > ("NotePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<Evoral::Note<Temporal::Beats> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<Evoral::Event<Temporal::Beats> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<Evoral::Event<Temporal::Beats> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<Evoral::Event<Temporal::Beats> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::shared_ptr<Evoral::Event<Temporal::Beats> > >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::shared_ptr<Evoral::Event<Temporal::Beats> > >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::shared_ptr<Evoral::Event<Temporal::Beats> > >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<Evoral::Event<Temporal::Beats> >]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2024:33:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginStdList(const char*) [with T = std::shared_ptr<Evoral::Event<Temporal::Beats> >]'
 2024 |     return beginConstStdList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:2375:69:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                          
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                         
 2001 | 
      |                                                                                    
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                         
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                                   
 2010 | 
      |                                                                                    
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                   
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2038 | 
      |                                                                                    
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2043 | 
      |                                                                                    
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2072 | 
      |                                                                                    
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2080 | 
      |                                                                                    
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2089 | 
      |                                                                                    
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2098 | 
      |                                                                                    
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2104 | 
      |                                                                                    
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2122 | 
      |                                                                                    
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2133 | 
      |                                                                                    
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2138 | 
      |                                                                                    
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2141 | 
      |                                                                                    
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2145 | 
      |                                                                                    
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2151 | 
      |                                                                                    
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2158 | 
      |                                                                                    
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2163 | 
      |                                                                                    
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2167 | 
      |                                                                                    
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2172 | 
      |                                                                                    
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2179 | 
      |                                                                                    
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2208 | 
      |                                                                                    
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2211 | 
      |                                                                                    
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2214 | 
      |                                                                                    
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2218 | 
      |                                                                                    
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2221 | 
      |                                                                                    
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2224 | 
      |                                                                                    
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2227 | 
      |                                                                                    
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                             
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2235 | 
      |                                                                                    
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2240 | 
      |                                                                                    
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2244 | 
      |                                                                                    
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2247 | 
      |                                                                                    
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2251 | 
      |                                                                                    
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2255 | 
      |                                                                                    
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2259 | 
      |                                                                                    
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2263 | 
      |                                                                                    
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2267 | 
      |                                                                                    
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2272 | 
      |                                                                                    
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2278 | 
      |                                                                                    
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2283 | 
      |                                                                                    
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                     
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2288 | 
      |                                                                                    
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2292 | 
      |                                                                                    
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2296 | 
      |                                                                                    
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2300 | 
      |                                                                                    
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2304 | 
      |                                                                                    
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2308 | 
      |                                                                                    
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2312 | 
      |                                                                                    
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2316 | 
      |                                                                                    
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2320 | 
      |                                                                                    
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2324 | 
      |                                                                                    
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2328 | 
      |                                                                                    
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2332 | 
      |                                                                                    
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2338 | 
      |                                                                                    
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                                        
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2342 | 
      |                                                                                    
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2346 | 
      |                                                                                    
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2350 | 
      |                                                                                    
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2354 | 
      |                                                                                    
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2357 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2358 | 
      |                                                                                    
 2359 |                 .beginConstStdCPtrList <Location> ("LocationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2360 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2361 | 
      |                                                                                    
 2362 |                 .beginConstStdVector <Evoral::Parameter> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2363 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2364 | 
      |                                                                                    
 2365 |                 .beginStdList <std::shared_ptr<AutomationControl> > ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2366 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2367 | 
      |                                                                                    
 2368 |                 .beginPtrStdList <std::shared_ptr<AutomationControl> > ("ControlListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2369 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <AutomationControl> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2370 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2371 | 
      |                                                                                    
 2372 |                 .beginStdList <std::shared_ptr<Evoral::Note<Temporal::Beats> > > ("NotePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2373 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2374 | 
      |                                                                                    
 2375 |                 .beginStdList <std::shared_ptr<Evoral::Event<Temporal::Beats> > > ("EventPtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<Evoral::Event<Temporal::Beats> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::__cxx11::list<std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::__cxx11::list<std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::__cxx11::list<std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:473:63:   required from 'static int luabridge::Namespace::ClassBase::ctorPlacementProxy(lua_State*) [with Params = void; T = std::__cxx11::list<std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > >; lua_State = lua_State]'
  473 |       Constructor <T, Params>::call (UserdataValue <T>::place (L), args);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../libs/lua/LuaBridge/detail/Namespace.h:1107:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addConstructor() [with MemFn = void (*)(); T = std::__cxx11::list<std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > >]'
 1107 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1108 |         &ctorPlacementProxy <typename FuncTraits <MemFn>::Params, T>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1127:43:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidConstructor() [with T = std::__cxx11::list<std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > >]'
 1127 |       return addConstructor <void (*) ()> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2009:27:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Namespace.h:2024:33:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginStdList(const char*) [with T = std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >]'
 2024 |     return beginConstStdList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:2378:75:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                               
 2001 | 
      |                                                                                          
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                               
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                                         
 2010 | 
      |                                                                                          
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                         
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                   
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                     
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                   
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2038 | 
      |                                                                                          
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2043 | 
      |                                                                                          
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2072 | 
      |                                                                                          
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2080 | 
      |                                                                                          
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2089 | 
      |                                                                                          
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2098 | 
      |                                                                                          
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2104 | 
      |                                                                                          
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                    
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2122 | 
      |                                                                                          
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2133 | 
      |                                                                                          
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2138 | 
      |                                                                                          
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2141 | 
      |                                                                                          
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2145 | 
      |                                                                                          
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2151 | 
      |                                                                                          
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2158 | 
      |                                                                                          
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2163 | 
      |                                                                                          
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2167 | 
      |                                                                                          
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2172 | 
      |                                                                                          
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2179 | 
      |                                                                                          
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2208 | 
      |                                                                                          
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2211 | 
      |                                                                                          
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2214 | 
      |                                                                                          
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2218 | 
      |                                                                                          
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2221 | 
      |                                                                                          
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2224 | 
      |                                                                                          
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2227 | 
      |                                                                                          
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                                   
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2235 | 
      |                                                                                          
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2240 | 
      |                                                                                          
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2244 | 
      |                                                                                          
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2247 | 
      |                                                                                          
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2251 | 
      |                                                                                          
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2255 | 
      |                                                                                          
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2259 | 
      |                                                                                          
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2263 | 
      |                                                                                          
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2267 | 
      |                                                                                          
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2272 | 
      |                                                                                          
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                            
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2278 | 
      |                                                                                          
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                     
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2283 | 
      |                                                                                          
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                           
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2288 | 
      |                                                                                          
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2292 | 
      |                                                                                          
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2296 | 
      |                                                                                          
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2300 | 
      |                                                                                          
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2304 | 
      |                                                                                          
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2308 | 
      |                                                                                          
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2312 | 
      |                                                                                          
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2316 | 
      |                                                                                          
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2320 | 
      |                                                                                          
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2324 | 
      |                                                                                          
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2328 | 
      |                                                                                          
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2332 | 
      |                                                                                          
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2338 | 
      |                                                                                          
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                                              
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2342 | 
      |                                                                                          
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2346 | 
      |                                                                                          
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2350 | 
      |                                                                                          
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2354 | 
      |                                                                                          
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2357 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2358 | 
      |                                                                                          
 2359 |                 .beginConstStdCPtrList <Location> ("LocationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2360 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2361 | 
      |                                                                                          
 2362 |                 .beginConstStdVector <Evoral::Parameter> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2363 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2364 | 
      |                                                                                          
 2365 |                 .beginStdList <std::shared_ptr<AutomationControl> > ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2366 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2367 | 
      |                                                                                          
 2368 |                 .beginPtrStdList <std::shared_ptr<AutomationControl> > ("ControlListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2369 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <AutomationControl> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2370 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2371 | 
      |                                                                                          
 2372 |                 .beginStdList <std::shared_ptr<Evoral::Note<Temporal::Beats> > > ("NotePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2373 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2374 | 
      |                                                                                          
 2375 |                 .beginStdList <std::shared_ptr<Evoral::Event<Temporal::Beats> > > ("EventPtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2376 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2377 | 
      |                                                                                          
 2378 |                 .beginStdList <std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > > ("PatchChangePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::__cxx11::list<std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Processor>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Processor>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Processor>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Processor>; T = std::shared_ptr<ARDOUR::Processor>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Processor>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Processor>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:220:61:   required from 'static int luabridge::CFunc::Call<FnPtr, ReturnType>::f(lua_State*) [with FnPtr = std::shared_ptr<ARDOUR::Processor> (*)(); ReturnType = std::shared_ptr<ARDOUR::Processor>; lua_State = lua_State]'
  220 |       Stack <typename FuncTraits <FnPtr>::ReturnType>::push (L, FuncTraits <FnPtr>::call (fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1884:26:   required from 'luabridge::Namespace& luabridge::Namespace::addFunction(const char*, FP) [with FP = std::shared_ptr<ARDOUR::Processor> (*)()]'
 1884 |     lua_pushcclosure (L, &CFunc::Call <FP>::f, 1);
      |                          ^~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3184:16:   required from here
 3030 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3031 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 3032 |                 .beginClass <Session> ("Session")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3033 |                 .addFunction ("scripts_changed", &Session::scripts_changed) // used internally
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3034 |                 .addFunction ("engine_speed", &Session::engine_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3035 |                 .addFunction ("actual_speed", &Session::actual_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3036 |                 .addFunction ("transport_speed", &Session::transport_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3037 |                 .addFunction ("transport_stopped", &Session::transport_stopped)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3038 |                 .addFunction ("transport_stopped_or_stopping", &Session::transport_stopped_or_stopping)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3039 |                 .addFunction ("transport_state_rolling", &Session::transport_state_rolling)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3040 |                 .addFunction ("transport_rolling", &Session::transport_rolling)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3041 |                 .addFunction ("transport_will_roll_forwards", &Session::transport_will_roll_forwards)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3042 |                 .addFunction ("request_transport_speed", &Session::request_transport_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3043 |                 .addFunction ("transport_sample", &Session::transport_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3044 |                 .addFunction ("sample_rate", &Session::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3045 |                 .addFunction ("nominal_sample_rate", &Session::nominal_sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3046 |                 .addFunction ("samples_per_timecode_frame", &Session::samples_per_timecode_frame)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3047 |                 .addFunction ("timecode_frames_per_hour", &Session::timecode_frames_per_hour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3048 |                 .addFunction ("timecode_frames_per_second", &Session::timecode_frames_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3049 |                 .addFunction ("timecode_drop_frames", &Session::timecode_drop_frames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3050 |                 .addFunction ("request_locate", &Session::request_locate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3051 |                 .addFunction ("request_roll", &Session::request_roll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3052 |                 .addFunction ("request_stop", &Session::request_stop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3053 |                 .addFunction ("request_play_loop", &Session::request_play_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3054 |                 .addFunction ("request_bounded_roll", &Session::request_bounded_roll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3055 |                 .addFunction ("preroll_samples", &Session::preroll_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3056 |                 .addFunction ("request_preroll_record_trim", &Session::request_preroll_record_trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3057 |                 .addFunction ("request_count_in_record", &Session::request_count_in_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3058 |                 .addFunction ("get_play_loop", &Session::get_play_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3059 |                 .addFunction ("get_xrun_count", &Session::get_xrun_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3060 |                 .addFunction ("reset_xrun_count", &Session::reset_xrun_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3061 |                 .addFunction ("last_transport_start", &Session::last_transport_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3062 |                 .addFunction ("goto_start", &Session::goto_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3063 |                 .addFunction ("goto_end", &Session::goto_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3064 |                 .addFunction ("current_start_sample", &Session::current_start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3065 |                 .addFunction ("current_end_sample", &Session::current_end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3066 |                 .addFunction ("actively_recording", &Session::actively_recording)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3067 |                 .addFunction ("new_audio_track", &Session::new_audio_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3068 |                 .addFunction ("new_audio_route", &Session::new_audio_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3069 |                 .addFunction ("new_midi_track", &Session::new_midi_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3070 |                 .addFunction ("new_midi_route", &Session::new_midi_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3071 | 
      |                               
 3072 |                 .addFunction ("add_master_bus", &Session::add_master_bus)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3073 | 
      |                               
 3074 |                 .addFunction ("get_routes", &Session::get_routes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3075 |                 .addFunction ("get_tracks", &Session::get_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3076 |                 .addFunction ("get_stripables", (StripableList (Session::*)() const)&Session::get_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3077 |                 .addFunction ("get_routelist", &Session::get_routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3078 |                 .addFunction ("plot_process_graph", &Session::plot_process_graph)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3079 | 
      |                               
 3080 |                 .addFunction ("bundles", &Session::bundles)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3081 | 
      |                               
 3082 |                 .addFunction ("apply_nth_mixer_scene", (bool (Session::*)(size_t))&Session::apply_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3083 |                 .addFunction ("apply_nth_mixer_scene_to", (bool (Session::*)(size_t, RouteList const&))&Session::apply_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3084 |                 .addFunction ("store_nth_mixer_scene", &Session::store_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3085 |                 .addFunction ("nth_mixer_scene_valid", &Session::nth_mixer_scene_valid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3086 |                 .addFunction ("nth_mixer_scene", &Session::nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3087 | 
      |                               
 3088 |                 .addFunction ("name", &Session::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3089 |                 .addFunction ("path", &Session::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3090 |                 .addFunction ("record_status", &Session::record_status)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3091 |                 .addFunction ("maybe_enable_record", &Session::maybe_enable_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3092 |                 .addFunction ("disable_record", &Session::disable_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3093 |                 .addFunction ("route_by_id", &Session::route_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3094 |                 .addFunction ("route_by_name", &Session::route_by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3095 |                 .addFunction ("stripable_by_id", &Session::stripable_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3096 |                 .addFunction ("get_remote_nth_stripable", &Session::get_remote_nth_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3097 |                 .addFunction ("get_remote_nth_route", &Session::get_remote_nth_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3098 |                 .addFunction ("route_by_selected_count", &Session::route_by_selected_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3099 |                 .addFunction ("source_by_id", &Session::source_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3100 |                 .addFunction ("controllable_by_id", &Session::controllable_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3101 |                 .addFunction ("processor_by_id", &Session::processor_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3102 |                 .addFunction ("snap_name", &Session::snap_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3103 |                 .addFunction ("monitor_out", &Session::monitor_out)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3104 |                 .addFunction ("master_out", &Session::master_out)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3105 |                 .addFunction ("master_volume", &Session::master_volume)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3106 |                 .addFunction ("surround_master", &Session::surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3107 |                 .addFunction ("add_internal_send", (void (Session::*)(std::shared_ptr<Route>, std::shared_ptr<Processor>, std::shared_ptr<Route>))&Session::add_internal_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3108 |                 .addFunction ("add_internal_sends", &Session::add_internal_sends)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3109 |                 .addFunction ("locations", &Session::locations)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3110 |                 .addFunction ("soloing", &Session::soloing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3111 |                 .addFunction ("listening", &Session::listening)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3112 |                 .addFunction ("solo_isolated", &Session::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3113 |                 .addFunction ("cancel_all_solo", &Session::cancel_all_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3114 |                 .addFunction ("clear_all_solo_state", &Session::clear_all_solo_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3115 |                 .addFunction ("set_controls", &Session::set_controls)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3116 |                 .addFunction ("set_control", &Session::set_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3117 |                 .addFunction ("set_exclusive_input_active", &Session::set_exclusive_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3118 |                 .addFunction ("begin_reversible_command", (void (Session::*)(const std::string&))&Session::begin_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3119 |                 .addFunction ("commit_reversible_command", &Session::commit_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3120 |                 .addFunction ("abort_reversible_command", &Session::abort_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3121 |                 .addFunction ("collected_undo_commands", &Session::collected_undo_commands)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3122 |                 .addFunction ("abort_empty_reversible_command", &Session::abort_empty_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3123 |                 .addFunction ("add_command", &Session::add_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3124 |                 .addFunction ("add_stateful_diff_command", &Session::add_stateful_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3125 |                 .addFunction ("playlists", &Session::playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3126 |                 .addFunction ("engine", (AudioEngine& (Session::*)())&Session::engine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3127 |                 .addFunction ("get_block_size", &Session::get_block_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3128 |                 .addFunction ("worst_output_latency", &Session::worst_output_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3129 |                 .addFunction ("worst_input_latency", &Session::worst_input_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3130 |                 .addFunction ("worst_route_latency", &Session::worst_route_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3131 |                 .addFunction ("io_latency", &Session::io_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3132 |                 .addFunction ("worst_latency_preroll", &Session::worst_latency_preroll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3133 |                 .addFunction ("worst_latency_preroll_buffer_size_ceil", &Session::worst_latency_preroll_buffer_size_ceil)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3134 |                 .addFunction ("cfg", &Session::cfg)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3135 |                 .addFunction ("route_groups", &Session::route_groups)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3136 |                 .addFunction ("new_route_group", &Session::new_route_group)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3137 |                 .addFunction ("session_range_is_free", &Session::session_range_is_free)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3138 |                 .addFunction ("set_session_range_is_free", &Session::set_session_range_is_free)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3139 |                 .addFunction ("set_session_extents", &Session::set_session_extents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3140 |                 .addFunction ("maybe_update_session_range", &Session::maybe_update_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3141 |                 .addFunction ("remove_route", &Session::remove_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3142 |                 .addFunction ("remove_routes", &Session::remove_routes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3143 |                 .addFunction ("remove_route_group", (void (Session::*)(RouteGroup*))&Session::remove_route_group)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3144 |                 .addFunction ("cut_copy_section", &Session::cut_copy_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3145 |                 .addFunction ("vca_manager", &Session::vca_manager_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3146 |                 .addExtCFunction ("timecode_to_sample_lua", ARDOUR::LuaAPI::timecode_to_sample_lua)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3147 |                 .addExtCFunction ("sample_to_timecode_lua", ARDOUR::LuaAPI::sample_to_timecode_lua)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3148 |                 .addExtCFunction ("simple_export", &ARDOUR::LuaAPI::simple_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3149 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 3150 | 
      |                               
 3151 |                 .beginClass <RegionFactory> ("RegionFactory")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3152 |                 .addStaticFunction ("region_by_id", &RegionFactory::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3153 |                 .addStaticFunction ("regions", &RegionFactory::regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3154 |                 .addStaticFunction ("clone_region", static_cast<std::shared_ptr<Region> (*)(std::shared_ptr<Region>, bool, bool)>(&RegionFactory::create))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3155 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 3156 | 
      |                               
 3157 |                 /* session enums (rt-safe, common) */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3158 |                 .beginNamespace ("Session")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3159 | 
      |                               
 3160 |                 .beginNamespace ("RecordState")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3161 |                 .addConst ("Disabled", ARDOUR::Session::RecordState(Session::Disabled))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3162 |                 .addConst ("Enabled", ARDOUR::Session::RecordState(Session::Enabled))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3163 |                 .addConst ("Recording", ARDOUR::Session::RecordState(Session::Recording))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3164 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 3165 | 
      |                               
 3166 |                 .endNamespace () // end Session enums
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3167 | 
      |                               
 3168 |                 /* ardour enums (rt-safe, common) */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3169 |                 .beginNamespace ("LocationFlags")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3170 |                 .addConst ("IsMark", ARDOUR::Location::Flags(Location::IsMark))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3171 |                 .addConst ("IsAutoPunch", ARDOUR::Location::Flags(Location::IsAutoPunch))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3172 |                 .addConst ("IsAutoLoop", ARDOUR::Location::Flags(Location::IsAutoLoop))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3173 |                 .addConst ("IsHidden", ARDOUR::Location::Flags(Location::IsHidden))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3174 |                 .addConst ("IsCDMarker", ARDOUR::Location::Flags(Location::IsCDMarker))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3175 |                 .addConst ("IsCueMarker", ARDOUR::Location::Flags(Location::IsCueMarker))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3176 |                 .addConst ("IsSection", ARDOUR::Location::Flags(Location::IsSection))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3177 |                 .addConst ("IsRangeMarker", ARDOUR::Location::Flags(Location::IsRangeMarker))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3178 |                 .addConst ("IsSessionRange", ARDOUR::Location::Flags(Location::IsSessionRange))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3179 |                 .addConst ("IsSkip", ARDOUR::Location::Flags(Location::IsSkip))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3180 |                 .addConst ("IsSkipping", ARDOUR::Location::Flags(Location::IsSkipping))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3181 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 3182 | 
      |                               
 3183 |                 .beginNamespace ("LuaAPI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 3184 |                 .addFunction ("nil_proc", ARDOUR::LuaAPI::nil_processor)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Processor>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<Evoral::Note<Temporal::Beats> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<Evoral::Note<Temporal::Beats> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<Evoral::Note<Temporal::Beats> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<Evoral::Note<Temporal::Beats> >; T = std::shared_ptr<Evoral::Note<Temporal::Beats> >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<Evoral::Note<Temporal::Beats> >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<Evoral::Note<Temporal::Beats> >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:220:61:   required from 'static int luabridge::CFunc::Call<FnPtr, ReturnType>::f(lua_State*) [with FnPtr = std::shared_ptr<Evoral::Note<Temporal::Beats> > (*)(unsigned char, Temporal::Beats, Temporal::Beats, unsigned char, unsigned char); ReturnType = std::shared_ptr<Evoral::Note<Temporal::Beats> >; lua_State = lua_State]'
  220 |       Stack <typename FuncTraits <FnPtr>::ReturnType>::push (L, FuncTraits <FnPtr>::call (fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1884:26:   required from 'luabridge::Namespace& luabridge::Namespace::addFunction(const char*, FP) [with FP = std::shared_ptr<Evoral::Note<Temporal::Beats> > (*)(unsigned char, Temporal::Beats, Temporal::Beats, unsigned char, unsigned char)]'
 1884 |     lua_pushcclosure (L, &CFunc::Call <FP>::f, 1);
      |                          ^~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3212:16:   required from here
 3030 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3031 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 3032 |                 .beginClass <Session> ("Session")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3033 |                 .addFunction ("scripts_changed", &Session::scripts_changed) // used internally
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3034 |                 .addFunction ("engine_speed", &Session::engine_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3035 |                 .addFunction ("actual_speed", &Session::actual_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3036 |                 .addFunction ("transport_speed", &Session::transport_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3037 |                 .addFunction ("transport_stopped", &Session::transport_stopped)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3038 |                 .addFunction ("transport_stopped_or_stopping", &Session::transport_stopped_or_stopping)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3039 |                 .addFunction ("transport_state_rolling", &Session::transport_state_rolling)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3040 |                 .addFunction ("transport_rolling", &Session::transport_rolling)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3041 |                 .addFunction ("transport_will_roll_forwards", &Session::transport_will_roll_forwards)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3042 |                 .addFunction ("request_transport_speed", &Session::request_transport_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3043 |                 .addFunction ("transport_sample", &Session::transport_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3044 |                 .addFunction ("sample_rate", &Session::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3045 |                 .addFunction ("nominal_sample_rate", &Session::nominal_sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3046 |                 .addFunction ("samples_per_timecode_frame", &Session::samples_per_timecode_frame)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3047 |                 .addFunction ("timecode_frames_per_hour", &Session::timecode_frames_per_hour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3048 |                 .addFunction ("timecode_frames_per_second", &Session::timecode_frames_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3049 |                 .addFunction ("timecode_drop_frames", &Session::timecode_drop_frames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3050 |                 .addFunction ("request_locate", &Session::request_locate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3051 |                 .addFunction ("request_roll", &Session::request_roll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3052 |                 .addFunction ("request_stop", &Session::request_stop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3053 |                 .addFunction ("request_play_loop", &Session::request_play_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3054 |                 .addFunction ("request_bounded_roll", &Session::request_bounded_roll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3055 |                 .addFunction ("preroll_samples", &Session::preroll_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3056 |                 .addFunction ("request_preroll_record_trim", &Session::request_preroll_record_trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3057 |                 .addFunction ("request_count_in_record", &Session::request_count_in_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3058 |                 .addFunction ("get_play_loop", &Session::get_play_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3059 |                 .addFunction ("get_xrun_count", &Session::get_xrun_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3060 |                 .addFunction ("reset_xrun_count", &Session::reset_xrun_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3061 |                 .addFunction ("last_transport_start", &Session::last_transport_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3062 |                 .addFunction ("goto_start", &Session::goto_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3063 |                 .addFunction ("goto_end", &Session::goto_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3064 |                 .addFunction ("current_start_sample", &Session::current_start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3065 |                 .addFunction ("current_end_sample", &Session::current_end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3066 |                 .addFunction ("actively_recording", &Session::actively_recording)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3067 |                 .addFunction ("new_audio_track", &Session::new_audio_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3068 |                 .addFunction ("new_audio_route", &Session::new_audio_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3069 |                 .addFunction ("new_midi_track", &Session::new_midi_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3070 |                 .addFunction ("new_midi_route", &Session::new_midi_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3071 | 
      |                               
 3072 |                 .addFunction ("add_master_bus", &Session::add_master_bus)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3073 | 
      |                               
 3074 |                 .addFunction ("get_routes", &Session::get_routes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3075 |                 .addFunction ("get_tracks", &Session::get_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3076 |                 .addFunction ("get_stripables", (StripableList (Session::*)() const)&Session::get_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3077 |                 .addFunction ("get_routelist", &Session::get_routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3078 |                 .addFunction ("plot_process_graph", &Session::plot_process_graph)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3079 | 
      |                               
 3080 |                 .addFunction ("bundles", &Session::bundles)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3081 | 
      |                               
 3082 |                 .addFunction ("apply_nth_mixer_scene", (bool (Session::*)(size_t))&Session::apply_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3083 |                 .addFunction ("apply_nth_mixer_scene_to", (bool (Session::*)(size_t, RouteList const&))&Session::apply_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3084 |                 .addFunction ("store_nth_mixer_scene", &Session::store_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3085 |                 .addFunction ("nth_mixer_scene_valid", &Session::nth_mixer_scene_valid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3086 |                 .addFunction ("nth_mixer_scene", &Session::nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3087 | 
      |                               
 3088 |                 .addFunction ("name", &Session::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3089 |                 .addFunction ("path", &Session::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3090 |                 .addFunction ("record_status", &Session::record_status)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3091 |                 .addFunction ("maybe_enable_record", &Session::maybe_enable_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3092 |                 .addFunction ("disable_record", &Session::disable_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3093 |                 .addFunction ("route_by_id", &Session::route_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3094 |                 .addFunction ("route_by_name", &Session::route_by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3095 |                 .addFunction ("stripable_by_id", &Session::stripable_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3096 |                 .addFunction ("get_remote_nth_stripable", &Session::get_remote_nth_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3097 |                 .addFunction ("get_remote_nth_route", &Session::get_remote_nth_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3098 |                 .addFunction ("route_by_selected_count", &Session::route_by_selected_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3099 |                 .addFunction ("source_by_id", &Session::source_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3100 |                 .addFunction ("controllable_by_id", &Session::controllable_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3101 |                 .addFunction ("processor_by_id", &Session::processor_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3102 |                 .addFunction ("snap_name", &Session::snap_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3103 |                 .addFunction ("monitor_out", &Session::monitor_out)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3104 |                 .addFunction ("master_out", &Session::master_out)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3105 |                 .addFunction ("master_volume", &Session::master_volume)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3106 |                 .addFunction ("surround_master", &Session::surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3107 |                 .addFunction ("add_internal_send", (void (Session::*)(std::shared_ptr<Route>, std::shared_ptr<Processor>, std::shared_ptr<Route>))&Session::add_internal_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3108 |                 .addFunction ("add_internal_sends", &Session::add_internal_sends)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3109 |                 .addFunction ("locations", &Session::locations)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3110 |                 .addFunction ("soloing", &Session::soloing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3111 |                 .addFunction ("listening", &Session::listening)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3112 |                 .addFunction ("solo_isolated", &Session::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3113 |                 .addFunction ("cancel_all_solo", &Session::cancel_all_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3114 |                 .addFunction ("clear_all_solo_state", &Session::clear_all_solo_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3115 |                 .addFunction ("set_controls", &Session::set_controls)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3116 |                 .addFunction ("set_control", &Session::set_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3117 |                 .addFunction ("set_exclusive_input_active", &Session::set_exclusive_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3118 |                 .addFunction ("begin_reversible_command", (void (Session::*)(const std::string&))&Session::begin_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3119 |                 .addFunction ("commit_reversible_command", &Session::commit_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3120 |                 .addFunction ("abort_reversible_command", &Session::abort_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3121 |                 .addFunction ("collected_undo_commands", &Session::collected_undo_commands)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3122 |                 .addFunction ("abort_empty_reversible_command", &Session::abort_empty_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3123 |                 .addFunction ("add_command", &Session::add_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3124 |                 .addFunction ("add_stateful_diff_command", &Session::add_stateful_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3125 |                 .addFunction ("playlists", &Session::playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3126 |                 .addFunction ("engine", (AudioEngine& (Session::*)())&Session::engine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3127 |                 .addFunction ("get_block_size", &Session::get_block_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3128 |                 .addFunction ("worst_output_latency", &Session::worst_output_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3129 |                 .addFunction ("worst_input_latency", &Session::worst_input_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3130 |                 .addFunction ("worst_route_latency", &Session::worst_route_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3131 |                 .addFunction ("io_latency", &Session::io_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3132 |                 .addFunction ("worst_latency_preroll", &Session::worst_latency_preroll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3133 |                 .addFunction ("worst_latency_preroll_buffer_size_ceil", &Session::worst_latency_preroll_buffer_size_ceil)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3134 |                 .addFunction ("cfg", &Session::cfg)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3135 |                 .addFunction ("route_groups", &Session::route_groups)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3136 |                 .addFunction ("new_route_group", &Session::new_route_group)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3137 |                 .addFunction ("session_range_is_free", &Session::session_range_is_free)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3138 |                 .addFunction ("set_session_range_is_free", &Session::set_session_range_is_free)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3139 |                 .addFunction ("set_session_extents", &Session::set_session_extents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3140 |                 .addFunction ("maybe_update_session_range", &Session::maybe_update_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3141 |                 .addFunction ("remove_route", &Session::remove_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3142 |                 .addFunction ("remove_routes", &Session::remove_routes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3143 |                 .addFunction ("remove_route_group", (void (Session::*)(RouteGroup*))&Session::remove_route_group)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3144 |                 .addFunction ("cut_copy_section", &Session::cut_copy_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3145 |                 .addFunction ("vca_manager", &Session::vca_manager_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3146 |                 .addExtCFunction ("timecode_to_sample_lua", ARDOUR::LuaAPI::timecode_to_sample_lua)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3147 |                 .addExtCFunction ("sample_to_timecode_lua", ARDOUR::LuaAPI::sample_to_timecode_lua)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3148 |                 .addExtCFunction ("simple_export", &ARDOUR::LuaAPI::simple_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3149 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 3150 | 
      |                               
 3151 |                 .beginClass <RegionFactory> ("RegionFactory")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3152 |                 .addStaticFunction ("region_by_id", &RegionFactory::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3153 |                 .addStaticFunction ("regions", &RegionFactory::regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3154 |                 .addStaticFunction ("clone_region", static_cast<std::shared_ptr<Region> (*)(std::shared_ptr<Region>, bool, bool)>(&RegionFactory::create))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3155 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 3156 | 
      |                               
 3157 |                 /* session enums (rt-safe, common) */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3158 |                 .beginNamespace ("Session")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3159 | 
      |                               
 3160 |                 .beginNamespace ("RecordState")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3161 |                 .addConst ("Disabled", ARDOUR::Session::RecordState(Session::Disabled))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3162 |                 .addConst ("Enabled", ARDOUR::Session::RecordState(Session::Enabled))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3163 |                 .addConst ("Recording", ARDOUR::Session::RecordState(Session::Recording))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3164 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 3165 | 
      |                               
 3166 |                 .endNamespace () // end Session enums
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3167 | 
      |                               
 3168 |                 /* ardour enums (rt-safe, common) */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3169 |                 .beginNamespace ("LocationFlags")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3170 |                 .addConst ("IsMark", ARDOUR::Location::Flags(Location::IsMark))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3171 |                 .addConst ("IsAutoPunch", ARDOUR::Location::Flags(Location::IsAutoPunch))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3172 |                 .addConst ("IsAutoLoop", ARDOUR::Location::Flags(Location::IsAutoLoop))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3173 |                 .addConst ("IsHidden", ARDOUR::Location::Flags(Location::IsHidden))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3174 |                 .addConst ("IsCDMarker", ARDOUR::Location::Flags(Location::IsCDMarker))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3175 |                 .addConst ("IsCueMarker", ARDOUR::Location::Flags(Location::IsCueMarker))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3176 |                 .addConst ("IsSection", ARDOUR::Location::Flags(Location::IsSection))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3177 |                 .addConst ("IsRangeMarker", ARDOUR::Location::Flags(Location::IsRangeMarker))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3178 |                 .addConst ("IsSessionRange", ARDOUR::Location::Flags(Location::IsSessionRange))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3179 |                 .addConst ("IsSkip", ARDOUR::Location::Flags(Location::IsSkip))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3180 |                 .addConst ("IsSkipping", ARDOUR::Location::Flags(Location::IsSkipping))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3181 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 3182 | 
      |                               
 3183 |                 .beginNamespace ("LuaAPI")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 3184 |                 .addFunction ("nil_proc", ARDOUR::LuaAPI::nil_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3185 |                 .addFunction ("new_luaproc", ARDOUR::LuaAPI::new_luaproc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3186 |                 .addFunction ("new_send", ARDOUR::LuaAPI::new_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3187 |                 .addFunction ("new_luaproc_with_time_domain", ARDOUR::LuaAPI::new_luaproc_with_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3188 |                 .addFunction ("list_plugins", ARDOUR::LuaAPI::list_plugins)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3189 |                 .addFunction ("dump_untagged_plugins", ARDOUR::LuaAPI::dump_untagged_plugins)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3190 |                 .addFunction ("new_plugin_info", ARDOUR::LuaAPI::new_plugin_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3191 |                 .addFunction ("new_plugin", ARDOUR::LuaAPI::new_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3192 |                 .addFunction ("new_plugin_with_time_domain", ARDOUR::LuaAPI::new_plugin_with_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3193 |                 .addFunction ("set_processor_param", ARDOUR::LuaAPI::set_processor_param)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3194 |                 .addFunction ("set_plugin_insert_param", ARDOUR::LuaAPI::set_plugin_insert_param)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3195 |                 .addFunction ("set_plugin_insert_property", ARDOUR::LuaAPI::set_plugin_insert_property)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3196 |                 .addCFunction ("get_plugin_insert_property", ARDOUR::LuaAPI::get_plugin_insert_property)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3197 |                 .addFunction ("reset_processor_to_default", ARDOUR::LuaAPI::reset_processor_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3198 |                 .addFunction ("set_automation_data", ARDOUR::LuaAPI::set_automation_data)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3199 |                 .addRefFunction ("get_processor_param", ARDOUR::LuaAPI::get_processor_param)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3200 |                 .addRefFunction ("get_plugin_insert_param", ARDOUR::LuaAPI::get_plugin_insert_param)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3201 |                 .addCFunction ("desc_scale_points", ARDOUR::LuaAPI::desc_scale_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3202 |                 .addCFunction ("plugin_automation", ARDOUR::LuaAPI::plugin_automation)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3203 |                 .addCFunction ("hsla_to_rgba", ARDOUR::LuaAPI::hsla_to_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3204 |                 .addCFunction ("color_to_rgba", ARDOUR::LuaAPI::color_to_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3205 |                 .addFunction ("ascii_dtostr", ARDOUR::LuaAPI::ascii_dtostr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3206 |                 .addFunction ("usleep", Glib::usleep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3207 |                 .addFunction ("file_test", Glib::file_test)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3208 |                 .addFunction ("file_get_contents", Glib::file_get_contents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3209 |                 .addFunction ("path_get_basename", Glib::path_get_basename)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3210 |                 .addFunction ("monotonic_time", ::g_get_monotonic_time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3211 |                 .addCFunction ("build_filename", ARDOUR::LuaAPI::build_filename)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3212 |                 .addFunction ("new_noteptr", ARDOUR::LuaAPI::new_noteptr)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<Evoral::Note<Temporal::Beats> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Port>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Port>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Port>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Port>; T = std::shared_ptr<ARDOUR::Port>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Port>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Port>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::Port> (ARDOUR::PortSet::*)(ARDOUR::DataType, long unsigned int) const; T = ARDOUR::PortSet; ReturnType = std::shared_ptr<ARDOUR::Port>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::Port> (ARDOUR::PortSet::*)(ARDOUR::DataType, long unsigned int) const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::Port> (ARDOUR::PortSet::*)(ARDOUR::DataType, long unsigned int) const; T = ARDOUR::PortSet]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1321:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Port>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::GainControl>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::GainControl>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::GainControl>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::GainControl>; T = std::shared_ptr<ARDOUR::GainControl>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::GainControl>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::GainControl>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::GainControl> (ARDOUR::Stripable::*)() const; T = ARDOUR::Stripable; ReturnType = std::shared_ptr<ARDOUR::GainControl>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::GainControl> (ARDOUR::Stripable::*)() const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::GainControl> (ARDOUR::Stripable::*)() const; T = ARDOUR::Stripable]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1415:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::GainControl>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::SoloControl>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::SoloControl>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::SoloControl>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::SoloControl>; T = std::shared_ptr<ARDOUR::SoloControl>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SoloControl>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SoloControl>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::SoloControl> (ARDOUR::Stripable::*)() const; T = ARDOUR::Stripable; ReturnType = std::shared_ptr<ARDOUR::SoloControl>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::SoloControl> (ARDOUR::Stripable::*)() const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::SoloControl> (ARDOUR::Stripable::*)() const; T = ARDOUR::Stripable]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1416:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::SoloControl>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::SoloIsolateControl>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::SoloIsolateControl>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::SoloIsolateControl>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::SoloIsolateControl>; T = std::shared_ptr<ARDOUR::SoloIsolateControl>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SoloIsolateControl>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SoloIsolateControl>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::SoloIsolateControl> (ARDOUR::Stripable::*)() const; T = ARDOUR::Stripable; ReturnType = std::shared_ptr<ARDOUR::SoloIsolateControl>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::SoloIsolateControl> (ARDOUR::Stripable::*)() const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::SoloIsolateControl> (ARDOUR::Stripable::*)() const; T = ARDOUR::Stripable]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1417:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::SoloIsolateControl>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::SoloSafeControl>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::SoloSafeControl>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::SoloSafeControl>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::SoloSafeControl>; T = std::shared_ptr<ARDOUR::SoloSafeControl>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SoloSafeControl>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SoloSafeControl>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::SoloSafeControl> (ARDOUR::Stripable::*)() const; T = ARDOUR::Stripable; ReturnType = std::shared_ptr<ARDOUR::SoloSafeControl>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::SoloSafeControl> (ARDOUR::Stripable::*)() const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::SoloSafeControl> (ARDOUR::Stripable::*)() const; T = ARDOUR::Stripable]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1418:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::SoloSafeControl>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::MuteControl>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::MuteControl>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::MuteControl>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::MuteControl>; T = std::shared_ptr<ARDOUR::MuteControl>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MuteControl>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MuteControl>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::MuteControl> (ARDOUR::Stripable::*)() const; T = ARDOUR::Stripable; ReturnType = std::shared_ptr<ARDOUR::MuteControl>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::MuteControl> (ARDOUR::Stripable::*)() const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::MuteControl> (ARDOUR::Stripable::*)() const; T = ARDOUR::Stripable]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1419:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::MuteControl>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::PhaseControl>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::PhaseControl>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::PhaseControl>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::PhaseControl>; T = std::shared_ptr<ARDOUR::PhaseControl>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PhaseControl>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PhaseControl>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::PhaseControl> (ARDOUR::Stripable::*)() const; T = ARDOUR::Stripable; ReturnType = std::shared_ptr<ARDOUR::PhaseControl>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::PhaseControl> (ARDOUR::Stripable::*)() const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::PhaseControl> (ARDOUR::Stripable::*)() const; T = ARDOUR::Stripable]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1420:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::PhaseControl>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::ReadOnlyControl>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::ReadOnlyControl>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::ReadOnlyControl>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::ReadOnlyControl>; T = std::shared_ptr<ARDOUR::ReadOnlyControl>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::ReadOnlyControl>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::ReadOnlyControl>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::ReadOnlyControl> (ARDOUR::Stripable::*)(ARDOUR::WellKnownData) const; T = ARDOUR::Stripable; ReturnType = std::shared_ptr<ARDOUR::ReadOnlyControl>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::ReadOnlyControl> (ARDOUR::Stripable::*)(ARDOUR::WellKnownData) const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::ReadOnlyControl> (ARDOUR::Stripable::*)(ARDOUR::WellKnownData) const; T = ARDOUR::Stripable]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1425:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::ReadOnlyControl>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::IO>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::IO>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::IO>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::IO>; T = std::shared_ptr<ARDOUR::IO>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::IO>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::IO>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::IO> (ARDOUR::Route::*)() const; T = ARDOUR::Route; ReturnType = std::shared_ptr<ARDOUR::IO>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::IO> (ARDOUR::Route::*)() const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::IO> (ARDOUR::Route::*)() const; T = ARDOUR::Route]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1474:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                               
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1446 | 
      |                               
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1454 | 
      |                               
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::IO>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::PannerShell>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::PannerShell>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::PannerShell>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::PannerShell>; T = std::shared_ptr<ARDOUR::PannerShell>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PannerShell>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::PannerShell>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::PannerShell> (ARDOUR::Route::*)() const; T = ARDOUR::Route; ReturnType = std::shared_ptr<ARDOUR::PannerShell>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::PannerShell> (ARDOUR::Route::*)() const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::PannerShell> (ARDOUR::Route::*)() const; T = ARDOUR::Route]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1476:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                               
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1446 | 
      |                               
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1454 | 
      |                               
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::PannerShell>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Delivery>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Delivery>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Delivery>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Delivery>; T = std::shared_ptr<ARDOUR::Delivery>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Delivery>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Delivery>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::Delivery> (ARDOUR::Route::*)() const; T = ARDOUR::Route; ReturnType = std::shared_ptr<ARDOUR::Delivery>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::Delivery> (ARDOUR::Route::*)() const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::Delivery> (ARDOUR::Route::*)() const; T = ARDOUR::Route]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1485:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                               
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1446 | 
      |                               
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1454 | 
      |                               
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Delivery>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::MonitorControl>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::MonitorControl>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::MonitorControl>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::MonitorControl>; T = std::shared_ptr<ARDOUR::MonitorControl>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MonitorControl>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MonitorControl>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::MonitorControl> (ARDOUR::Route::*)() const; T = ARDOUR::Route; ReturnType = std::shared_ptr<ARDOUR::MonitorControl>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::MonitorControl> (ARDOUR::Route::*)() const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::MonitorControl> (ARDOUR::Route::*)() const; T = ARDOUR::Route]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1495:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                               
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1446 | 
      |                               
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1454 | 
      |                               
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::MonitorControl>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::SurroundReturn>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::SurroundReturn>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::SurroundReturn>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::SurroundReturn>; T = std::shared_ptr<ARDOUR::SurroundReturn>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SurroundReturn>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SurroundReturn>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::SurroundReturn> (ARDOUR::Route::*)() const; T = ARDOUR::Route; ReturnType = std::shared_ptr<ARDOUR::SurroundReturn>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::SurroundReturn> (ARDOUR::Route::*)() const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::SurroundReturn> (ARDOUR::Route::*)() const; T = ARDOUR::Route]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1497:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                               
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1446 | 
      |                               
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1454 | 
      |                               
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::SurroundReturn>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Playlist>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Playlist>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Playlist>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Playlist>; T = std::shared_ptr<ARDOUR::Playlist>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Playlist>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Playlist>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::Playlist> (ARDOUR::Playlist::*)(std::__cxx11::list<ARDOUR::TimelineRange>&); T = ARDOUR::Playlist; ReturnType = std::shared_ptr<ARDOUR::Playlist>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::Playlist> (ARDOUR::Playlist::*)(std::__cxx11::list<ARDOUR::TimelineRange>&); lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::Playlist> (ARDOUR::Playlist::*)(std::__cxx11::list<ARDOUR::TimelineRange>&); T = ARDOUR::Playlist]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1537:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                               
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1446 | 
      |                               
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1454 | 
      |                               
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1499 | 
      |                               
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Playlist>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Source>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Source>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Source>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Source>; T = std::shared_ptr<ARDOUR::Source>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Source>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Source>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::Source> (ARDOUR::Region::*)(unsigned int) const; T = ARDOUR::Region; ReturnType = std::shared_ptr<ARDOUR::Source>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::Source> (ARDOUR::Region::*)(unsigned int) const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::Source> (ARDOUR::Region::*)(unsigned int) const; T = ARDOUR::Region]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1691:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                               
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1446 | 
      |                               
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1454 | 
      |                               
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1499 | 
      |                               
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                         
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                        
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1543 | 
      |                               
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1553 | 
      |                               
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1556 | 
      |                               
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1560 | 
      |                               
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1564 | 
      |                               
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1575 | 
      |                               
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1591 | 
      |                               
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1594 | 
      |                               
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1608 | 
      |                               
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1615 | 
      |                               
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1619 | 
      |                               
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                               
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                               
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                               
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                        
 1663 | 
      |                               
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Source>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::MidiModel>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::MidiModel>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::MidiModel>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::MidiModel>; T = std::shared_ptr<ARDOUR::MidiModel>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MidiModel>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MidiModel>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::MidiModel> (ARDOUR::MidiRegion::*)(); T = ARDOUR::MidiRegion; ReturnType = std::shared_ptr<ARDOUR::MidiModel>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::MidiModel> (ARDOUR::MidiRegion::*)(); lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::MidiModel> (ARDOUR::MidiRegion::*)(); T = ARDOUR::MidiRegion]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1698:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                               
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1446 | 
      |                               
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1454 | 
      |                               
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1499 | 
      |                               
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                         
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                        
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1543 | 
      |                               
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1553 | 
      |                               
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1556 | 
      |                               
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1560 | 
      |                               
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1564 | 
      |                               
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1575 | 
      |                               
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1591 | 
      |                               
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1594 | 
      |                               
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1608 | 
      |                               
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1615 | 
      |                               
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1619 | 
      |                               
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                               
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                               
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                               
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                        
 1663 | 
      |                               
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1694 | 
      |                               
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::MidiModel>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Stripable>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Stripable>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Stripable>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Stripable>; T = std::shared_ptr<ARDOUR::Stripable>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Stripable>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Stripable>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:331:32:   required from 'static int luabridge::CFunc::CallConstMember<MemFnPtr, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::Stripable> (ARDOUR::CoreSelection::*)() const; ReturnType = std::shared_ptr<ARDOUR::Stripable>; lua_State = lua_State]'
  331 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (t, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:982:28:   required from 'static void luabridge::CFunc::CallMemberFunctionHelper<MemFnPtr, isConst>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::Stripable> (ARDOUR::CoreSelection::*)() const; bool isConst = true; lua_State = lua_State]'
  982 |       lua_pushcclosure (L, &CallConstMember <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:982:95:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::Stripable> (ARDOUR::CoreSelection::*)() const; T = ARDOUR::CoreSelection]'
  982 |       CFunc::CallMemberFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1777:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                               
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1446 | 
      |                               
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1454 | 
      |                               
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1499 | 
      |                               
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                         
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                        
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1543 | 
      |                               
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1553 | 
      |                               
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1556 | 
      |                               
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1560 | 
      |                               
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1564 | 
      |                               
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1575 | 
      |                               
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1591 | 
      |                               
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1594 | 
      |                               
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1608 | 
      |                               
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1615 | 
      |                               
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1619 | 
      |                               
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                               
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                               
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                               
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                        
 1663 | 
      |                               
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1694 | 
      |                               
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1700 | 
      |                               
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1724 | 
      |                               
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1742 | 
      |                               
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1751 | 
      |                               
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1757 | 
      |                               
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1768 | 
      |                               
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1775 | 
      |                               
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Stripable>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::SurroundPannable>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::SurroundPannable>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::SurroundPannable>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::SurroundPannable>; T = std::shared_ptr<ARDOUR::SurroundPannable>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SurroundPannable>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SurroundPannable>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::SurroundPannable> (ARDOUR::SurroundSend::*)(long unsigned int) const; T = ARDOUR::SurroundSend; ReturnType = std::shared_ptr<ARDOUR::SurroundPannable>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::SurroundPannable> (ARDOUR::SurroundSend::*)(long unsigned int) const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::SurroundPannable> (ARDOUR::SurroundSend::*)(long unsigned int) const; T = ARDOUR::SurroundSend]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1961:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                               
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1446 | 
      |                               
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1454 | 
      |                               
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1499 | 
      |                               
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                         
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                        
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1543 | 
      |                               
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1553 | 
      |                               
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1556 | 
      |                               
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1560 | 
      |                               
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1564 | 
      |                               
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1575 | 
      |                               
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1591 | 
      |                               
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1594 | 
      |                               
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1608 | 
      |                               
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1615 | 
      |                               
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1619 | 
      |                               
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                               
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                               
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                               
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                        
 1663 | 
      |                               
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1694 | 
      |                               
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1700 | 
      |                               
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1724 | 
      |                               
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1742 | 
      |                               
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1751 | 
      |                               
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1757 | 
      |                               
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1768 | 
      |                               
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1775 | 
      |                               
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1782 | 
      |                               
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1788 | 
      |                               
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1797 | 
      |                               
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1803 | 
      |                               
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1807 | 
      |                               
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1815 | 
      |                               
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1819 | 
      |                               
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1824 | 
      |                               
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1829 | 
      |                               
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1834 | 
      |                               
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                               
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1844 | 
      |                               
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                               
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1862 | 
      |                               
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                               
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1878 |                 .addCast<MonitorProcessor> ("to_monitorprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1879 |                 .addCast<Send> ("to_send")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1880 |                 .addCast<SurroundSend> ("to_surroundsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1881 |                 .addCast<InternalSend> ("to_internalsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1882 |                 .addCast<PolarityProcessor> ("to_polarityprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1883 |                 .addCast<DelayLine> ("to_delayline")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1884 | #if 0 // those objects are not yet bound
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1885 |                 .addCast<CapturingProcessor> ("to_capturingprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1886 | #endif
      | ~~~~~~                        
 1887 |                 .addCast<PeakMeter> ("to_meter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1888 |                 .addFunction ("display_name", &Processor::display_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1889 |                 .addFunction ("display_to_user", &Processor::display_to_user)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1890 |                 .addFunction ("active", &Processor::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1891 |                 .addFunction ("activate", &Processor::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1892 |                 .addFunction ("deactivate", &Processor::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1893 |                 .addFunction ("input_latency", &Processor::input_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1894 |                 .addFunction ("output_latency", &Processor::output_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1895 |                 .addFunction ("capture_offset", &Processor::capture_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1896 |                 .addFunction ("playback_offset", &Processor::playback_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1897 |                 .addFunction ("output_streams", &Processor::output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1898 |                 .addFunction ("input_streams", &Processor::input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1899 |                 .addFunction ("signal_latency", &Processor::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1900 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1901 | 
      |                               
 1902 |                 .deriveWSPtrClass <DiskIOProcessor, Processor> ("DiskIOProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1903 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1904 | 
      |                               
 1905 |                 .deriveWSPtrClass <DiskReader, DiskIOProcessor> ("DiskReader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1906 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1907 | 
      |                               
 1908 |                 .deriveWSPtrClass <DiskWriter, DiskIOProcessor> ("DiskWriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1909 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1910 | 
      |                               
 1911 |                 .deriveWSPtrClass <IOProcessor, Processor> ("IOProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1912 |                 .addFunction ("natural_input_streams", &IOProcessor::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1913 |                 .addFunction ("natural_output_streams", &IOProcessor::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1914 |                 .addFunction ("input", (std::shared_ptr<IO>(IOProcessor::*)())&IOProcessor::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1915 |                 .addFunction ("output", (std::shared_ptr<IO>(IOProcessor::*)())&IOProcessor::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1916 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1917 | 
      |                               
 1918 |                 .deriveWSPtrClass <SideChain, IOProcessor> ("SideChain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1919 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1920 | 
      |                               
 1921 |                 .deriveWSPtrClass <Delivery, IOProcessor> ("Delivery")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1922 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1923 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1924 | 
      |                               
 1925 |                 .deriveWSPtrClass <Send, Delivery> ("Send")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1926 |                 .addCast<InternalSend> ("to_internalsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1927 |                 .addFunction ("get_delay_in", &Send::get_delay_in)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1928 |                 .addFunction ("get_delay_out", &Send::get_delay_out)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1929 |                 .addFunction ("gain_control", &Send::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1930 |                 .addFunction ("is_foldback", &Send::is_foldback)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1931 |                 .addFunction ("set_remove_on_disconnect", &Send::set_remove_on_disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1932 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1933 | 
      |                               
 1934 |                 .deriveWSPtrClass <InternalSend, Send> ("InternalSend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1935 |                 .addFunction ("set_name", &InternalSend::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1936 |                 .addFunction ("display_name", &InternalSend::display_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1937 |                 .addFunction ("source_route", &InternalSend::source_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1938 |                 .addFunction ("target_route", &InternalSend::target_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1939 |                 .addFunction ("allow_feedback", &InternalSend::allow_feedback)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1940 |                 .addFunction ("set_allow_feedback", &InternalSend::set_allow_feedback)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1941 |                 .addFunction ("feeds", &InternalSend::feeds)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1942 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1943 | 
      |                               
 1944 |                 .deriveWSPtrClass <SurroundPannable, Automatable> ("SurroundPannable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1945 |                 .addData ("pan_pos_x", &SurroundPannable::pan_pos_x)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1946 |                 .addData ("pan_pos_y", &SurroundPannable::pan_pos_y)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1947 |                 .addData ("pan_pos_z", &SurroundPannable::pan_pos_z)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1948 |                 .addData ("pan_size", &SurroundPannable::pan_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1949 |                 .addData ("pan_snap", &SurroundPannable::pan_snap)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1950 |                 .addData ("binaural_render_mode", &SurroundPannable::binaural_render_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1951 |                 .addData ("sur_elevation_enable", &SurroundPannable::sur_elevation_enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1952 |                 .addData ("sur_zones", &SurroundPannable::sur_zones)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1953 |                 .addData ("sur_ramp", &SurroundPannable::sur_ramp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1954 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1955 | 
      |                               
 1956 |                 .deriveWSPtrClass <SurroundSend, Processor> ("SurroundSend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1957 |                 .addFunction ("get_delay_in", &SurroundSend::get_delay_in)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1958 |                 .addFunction ("get_delay_out", &SurroundSend::get_delay_out)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1959 |                 .addFunction ("gain_control", &SurroundSend::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1960 |                 .addFunction ("n_pannables", &SurroundSend::n_pannables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1961 |                 .addFunction ("pannable", &SurroundSend::pannable)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::SurroundPannable>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<PBD::Controllable>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<PBD::Controllable>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<PBD::Controllable>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<PBD::Controllable>; T = std::shared_ptr<PBD::Controllable>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<PBD::Controllable>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<PBD::Controllable>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<PBD::Controllable> (ARDOUR::SurroundReturn::*)() const; T = ARDOUR::SurroundReturn; ReturnType = std::shared_ptr<PBD::Controllable>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<PBD::Controllable> (ARDOUR::SurroundReturn::*)() const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<PBD::Controllable> (ARDOUR::SurroundReturn::*)() const; T = ARDOUR::SurroundReturn]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:1978:16:   required from here
 1124 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 | 
      |                               
 1127 |                 .addConst ("revision", ARDOUR::revision)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1128 | 
      |                               
 1129 |                 .beginClass <InterThreadInfo> ("InterThreadInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1130 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1131 |                 .addData ("done", const_cast<bool InterThreadInfo::*>(&InterThreadInfo::done))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1132 | #if 0 // currently unused, lua is single-threaded, no custom UIs.
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133 |                 .addData ("cancel", (bool InterThreadInfo::*)&InterThreadInfo::cancel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1134 | #endif
      | ~~~~~~                        
 1135 |                 .addData ("progress", const_cast<float InterThreadInfo::*>(&InterThreadInfo::progress))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1137 | 
      |                               
 1138 |                 .beginClass <TimelineRange> ("TimelineRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1139 |                 .addConstructor <void (*) (Temporal::timepos_t, Temporal::timepos_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1140 |                 .addFunction ("length", &TimelineRange::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1141 |                 .addFunction ("equal", &TimelineRange::equal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1142 |                 .addFunction ("start", &TimelineRange::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 |                 .addFunction ("_end", &TimelineRange::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1144 |                 .addData ("id", &TimelineRange::id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1145 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1146 | 
      |                               
 1147 |                 .beginWSPtrClass <PluginInfo> ("PluginInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                 .addData ("name", &PluginInfo::name, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                 .addData ("category", &PluginInfo::category, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1151 |                 .addData ("creator", &PluginInfo::creator, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1152 |                 .addData ("path", &PluginInfo::path, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1153 |                 .addData ("n_inputs", &PluginInfo::n_inputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1154 |                 .addData ("n_outputs", &PluginInfo::n_outputs, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1155 |                 .addData ("type", &PluginInfo::type, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1156 |                 .addData ("unique_id", &PluginInfo::unique_id, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1157 |                 .addFunction ("is_instrument", &PluginInfo::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1158 |                 .addFunction ("get_presets", &PluginInfo::get_presets)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1160 | 
      |                               
 1161 |                 .beginNamespace ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                 .beginClass <Route::ProcessorStreams> ("ProcessorStreams")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1164 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1165 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1166 | 
      |                               
 1167 |                 .beginClass <ChanMapping> ("ChanMapping")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1168 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1169 |                 .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1170 |                 .addFunction ("set", &ChanMapping::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1171 |                 .addFunction ("count", &ChanMapping::count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                 .addFunction ("n_total", &ChanMapping::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                 .addFunction ("is_monotonic", &ChanMapping::is_monotonic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                 .addConst ("Invalid", 4294967295U) // UINT32_MAX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1176 | 
      |                               
 1177 |                 .beginNamespace ("Properties")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1178 |                 // templated class definitions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1179 |                 .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1180 |                 .beginClass <PBD::PropertyDescriptor<float> > ("FloatProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1181 |                 .beginClass <PBD::PropertyDescriptor<std::string> > ("StringProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1182 |                 .beginClass <PBD::PropertyDescriptor<samplepos_t> > ("SamplePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                 .beginClass <PBD::PropertyDescriptor<timepos_t> > ("TimePosProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                 .beginClass <PBD::PropertyDescriptor<timecnt_t> > ("TimeCntProperty").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 // actual references (TODO: also expose GQuark for std::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1186 |                 //   ardour/region.h
      |                 ~~~~~~~~~~~~~~~~~~~~
 1187 |                 .addConst ("Start", &ARDOUR::Properties::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1188 |                 .addConst ("Length", &ARDOUR::Properties::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1189 |                 .addConst ("Layer", &ARDOUR::Properties::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1190 |                 .addConst ("Muted", &ARDOUR::Properties::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1191 |                 .addConst ("Opaque", &ARDOUR::Properties::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1192 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 1193 | 
      |                               
 1194 |                 .beginClass <PBD::PropertyChange> ("PropertyChange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1195 |                 // TODO add special handling (std::set<PropertyID>), PropertyID is a GQuark.
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1196 |                 // -> direct map to lua table  beginStdSet()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1197 |                 //
      |                 ~~            
 1198 |                 // expand templated PropertyDescriptor<T>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1199 |                 .addFunction ("containsBool", &PBD::PropertyChange::contains<bool>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1200 |                 .addFunction ("containsFloat", &PBD::PropertyChange::contains<float>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1201 |                 .addFunction ("containsString", &PBD::PropertyChange::contains<std::string>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1202 |                 .addFunction ("containsSamplePos", &PBD::PropertyChange::contains<samplepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1203 |                 .addFunction ("containsTimePos", &PBD::PropertyChange::contains<timepos_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1204 |                 .addFunction ("containsTimeCnt", &PBD::PropertyChange::contains<timecnt_t>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1205 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1206 | 
      |                               
 1207 |                 .beginClass <PBD::PropertyList> ("PropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1208 |                 // is-a  std::map<PropertyID, PropertyBase*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1209 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1210 | 
      |                               
 1211 |                 .deriveClass <PBD::OwnedPropertyList, PBD::PropertyList> ("OwnedPropertyList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1212 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1213 | 
      |                               
 1214 |                 .deriveWSPtrClass <AutomationList, Evoral::ControlList> ("AutomationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1215 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1216 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1217 |                 .addCast<Evoral::ControlList> ("list") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1218 |                 .addFunction ("get_state", &AutomationList::get_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1219 |                 .addFunction ("memento_command", &AutomationList::memento_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1220 |                 .addFunction ("touching", &AutomationList::touching)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1221 |                 .addFunction ("writing", &AutomationList::writing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1222 |                 .addFunction ("touch_enabled", &AutomationList::touch_enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1223 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1224 | 
      |                               
 1225 |                 .deriveClass <Location, PBD::StatefulDestructible> ("Location")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1226 |                 .addFunction ("name", &Location::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 |                 .addFunction ("locked", &Location::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1228 |                 .addFunction ("lock", &Location::lock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1229 |                 .addFunction ("unlock", &Location::unlock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 |                 .addFunction ("start", &Location::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1231 |                 .addFunction ("_end", &Location::end) // XXX "end" is a lua reserved word
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1232 |                 .addFunction ("length", &Location::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1233 |                 .addFunction ("set_start", &Location::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1234 |                 .addFunction ("set_end", &Location::set_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1235 |                 .addFunction ("set", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1236 |                 .addFunction ("set_length", &Location::set)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1237 |                 .addFunction ("set_name", &Location::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1238 |                 .addFunction ("move_to", &Location::move_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1239 |                 .addFunction ("matches", &Location::matches)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1240 |                 .addFunction ("flags", &Location::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1241 |                 .addFunction ("is_auto_punch", &Location::is_auto_punch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1242 |                 .addFunction ("is_auto_loop", &Location::is_auto_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 |                 .addFunction ("is_mark", &Location::is_mark)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1244 |                 .addFunction ("is_hidden", &Location::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 |                 .addFunction ("is_cd_marker", &Location::is_cd_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1246 |                 .addFunction ("is_cue_marker", &Location::is_cue_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1247 |                 .addFunction ("is_session_range", &Location::is_session_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1248 |                 .addFunction ("is_range_marker", &Location::is_range_marker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1249 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1250 | 
      |                               
 1251 |                 .deriveClass <Locations, PBD::StatefulDestructible> ("Locations")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1252 |                 .addFunction ("list", static_cast<Locations::LocationList (Locations::*)()>(&Locations::list))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1253 |                 .addFunction ("auto_loop_location", &Locations::auto_loop_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1254 |                 .addFunction ("auto_punch_location", &Locations::auto_punch_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1255 |                 .addFunction ("session_range_location", &Locations::session_range_location)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1256 |                 .addFunction ("first_mark_after", &Locations::first_mark_after)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1257 |                 .addFunction ("first_mark_before", &Locations::first_mark_before)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1258 |                 .addFunction ("first_mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1259 |                 .addFunction ("mark_at", &Locations::mark_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1260 |                 .addFunction ("range_starts_at", &Locations::range_starts_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1261 |                 .addFunction ("add_range", &Locations::add_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1262 |                 .addFunction ("remove", &Locations::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1263 |                 .addRefFunction ("marks_either_side", &Locations::marks_either_side)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1264 |                 .addRefFunction ("find_all_between", &Locations::find_all_between)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1265 |                 .addRefFunction ("next_section", &Locations::next_section)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1266 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1267 | 
      |                               
 1268 |                 .beginWSPtrClass <SessionObject> ("SessionObjectPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1269 |                 /* SessionObject is-a PBD::StatefulDestructible,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1270 |                  * but multiple inheritance is not covered by luabridge,
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1271 |                  * we need explicit casts */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1272 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1273 |                 .addCast<PBD::StatefulDestructible> ("to_statefuldestructible")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1274 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1275 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1276 | 
      |                               
 1277 |                 .beginClass <SessionObject> ("SessionObject")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                 .addFunction ("name", &SessionObject::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1279 |                 .addCast<PBD::Stateful> ("to_stateful")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1280 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1281 | 
      |                               
 1282 |                 .beginWSPtrClass <Port> ("Port")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1283 |                 .addCast<MidiPort> ("to_midiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1284 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1285 |                 .addCast<AudioPort> ("to_audioport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1286 |                 .addFunction ("name", &Port::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1287 |                 .addFunction ("pretty_name", &Port::pretty_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1288 |                 .addFunction ("flags", &Port::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1289 |                 .addFunction ("receives_input", &Port::receives_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1290 |                 .addFunction ("sends_output", &Port::sends_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1291 |                 .addFunction ("connected", &Port::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1292 |                 .addFunction ("disconnect_all", &Port::disconnect_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1293 |                 .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1294 |                 .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1295 |                 .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1296 |                 .addFunction ("physically_connected", &Port::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1297 |                 .addFunction ("private_latency_range", &Port::private_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1298 |                 .addFunction ("public_latency_range", &Port::public_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1299 |                 .addRefFunction ("get_connected_latency_range", &Port::get_connected_latency_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1300 |                 //.addStaticFunction ("port_offset", &Port::port_offset) // static
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1301 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1302 | 
      |                               
 1303 |                 .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1304 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1305 | 
      |                               
 1306 |                 .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1307 |                 .addCast<AsyncMIDIPort> ("to_asyncmidiport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1308 |                 .addFunction ("input_active", &MidiPort::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1309 |                 .addFunction ("set_input_active", &MidiPort::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1310 |                 .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1311 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1312 | 
      |                               
 1313 |                 .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1314 |                 .addFunction ("write", &AsyncMIDIPort::write)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1315 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1316 | 
      |                               
 1317 |                 .beginWSPtrClass <PortSet> ("PortSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1318 |                 .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1319 |                 .addFunction ("add", &PortSet::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1320 |                 .addFunction ("remove", &PortSet::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1321 |                 .addFunction ("port", (std::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 |                 .addFunction ("contains", &PortSet::contains)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1323 |                 .addFunction ("clear", &PortSet::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1324 |                 .addFunction ("empty", &PortSet::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1325 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1326 | 
      |                               
 1327 |                 .deriveWSPtrClass <IO, SessionObject> ("IO")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1328 |                 .addFunction ("active", &IO::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                 .addFunction ("add_port", &IO::add_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1330 |                 .addFunction ("remove_port", &IO::remove_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1331 |                 .addFunction ("connect", &IO::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1332 |                 .addFunction ("disconnect", (int (IO::*)(std::shared_ptr<Port>, std::string, void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 |                 .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1334 |                 .addFunction ("physically_connected", &IO::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1335 |                 .addFunction ("has_port", &IO::has_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 |                 .addFunction ("nth", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1337 |                 .addFunction ("audio", &IO::audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1338 |                 .addFunction ("midi", &IO::midi)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1339 |                 .addFunction ("port_by_name", &IO::nth)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1340 |                 .addFunction ("n_ports", &IO::n_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1341 |                 .addFunction ("latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1342 |                 .addFunction ("public_latency", &IO::latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1343 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1344 | 
      |                               
 1345 |                 .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1346 |                 .addFunction ("bypassed", &PannerShell::bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1347 |                 .addFunction ("set_bypassed", &PannerShell::set_bypassed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1348 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1349 | 
      |                               
 1350 |                 .deriveClass <RouteGroup, SessionObject> ("RouteGroup")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1351 |                 .addFunction ("is_active", &RouteGroup::is_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1352 |                 .addFunction ("is_relative", &RouteGroup::is_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1353 |                 .addFunction ("is_hidden", &RouteGroup::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1354 |                 .addFunction ("is_gain", &RouteGroup::is_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1355 |                 .addFunction ("is_mute", &RouteGroup::is_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1356 |                 .addFunction ("is_solo", &RouteGroup::is_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1357 |                 .addFunction ("is_recenable", &RouteGroup::is_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1358 |                 .addFunction ("is_select", &RouteGroup::is_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1359 |                 .addFunction ("is_route_active", &RouteGroup::is_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1360 |                 .addFunction ("is_color", &RouteGroup::is_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1361 |                 .addFunction ("is_monitoring", &RouteGroup::is_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1362 |                 .addFunction ("group_master_number", &RouteGroup::group_master_number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1363 |                 .addFunction ("empty", &RouteGroup::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1364 |                 .addFunction ("size", &RouteGroup::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1365 |                 .addFunction ("set_active", &RouteGroup::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1366 |                 .addFunction ("set_relative", &RouteGroup::set_relative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1367 |                 .addFunction ("set_hidden", &RouteGroup::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1368 |                 .addFunction ("set_gain", &RouteGroup::set_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1369 |                 .addFunction ("set_mute", &RouteGroup::set_mute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1370 |                 .addFunction ("set_solo", &RouteGroup::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1371 |                 .addFunction ("set_recenable", &RouteGroup::set_recenable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1372 |                 .addFunction ("set_select", &RouteGroup::set_select)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1373 |                 .addFunction ("set_route_active", &RouteGroup::set_route_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1374 |                 .addFunction ("set_color", &RouteGroup::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1375 |                 .addFunction ("set_monitoring", &RouteGroup::set_monitoring)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1376 |                 .addFunction ("add", &RouteGroup::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1377 |                 .addFunction ("remove", &RouteGroup::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1378 |                 .addFunction ("clear", &RouteGroup::clear)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1379 |                 .addFunction ("set_rgba", &RouteGroup::set_rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1380 |                 .addFunction ("rgba", &RouteGroup::rgba)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1381 |                 .addFunction ("has_subgroup", &RouteGroup::has_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1382 |                 .addFunction ("make_subgroup", &RouteGroup::make_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1383 |                 .addFunction ("destroy_subgroup", &RouteGroup::destroy_subgroup)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1384 |                 .addFunction ("route_list", &RouteGroup::route_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1385 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1386 | 
      |                               
 1387 |                 .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1388 |                 .addFunction ("color", &PresentationInfo::color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1389 |                 .addFunction ("set_color", &PresentationInfo::set_color)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1390 |                 .addFunction ("order", &PresentationInfo::order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1391 |                 .addFunction ("special", &PresentationInfo::special)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1392 |                 .addFunction ("flags", &PresentationInfo::flags)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1393 |                 .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1394 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1395 | 
      |                               
 1396 |                 .beginWSPtrClass <Slavable> ("Slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1397 |                 .addFunction ("assign", &Slavable::assign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1398 |                 .addFunction ("unassign", &Slavable::unassign)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1399 |                 .addFunction ("masters", &Slavable::masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1400 |                 .addFunction ("assigned_to", &Slavable::assigned_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1401 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1402 | 
      |                               
 1403 |                 .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1404 |                 .addCast<Route> ("to_route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1405 |                 .addCast<VCA> ("to_vca")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1406 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1407 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1408 |                 .addFunction ("is_auditioner", &Stripable::is_auditioner)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1409 |                 .addFunction ("is_private_route", &Stripable::is_private_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1410 |                 .addFunction ("is_master", &Stripable::is_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1411 |                 .addFunction ("is_monitor", &Stripable::is_monitor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1412 |                 .addFunction ("is_surround_master", &Stripable::is_surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1413 |                 .addFunction ("is_hidden", &Stripable::is_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 |                 .addFunction ("is_selected", &Stripable::is_selected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1415 |                 .addFunction ("gain_control", &Stripable::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1416 |                 .addFunction ("solo_control", &Stripable::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1417 |                 .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1418 |                 .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1419 |                 .addFunction ("mute_control", &Stripable::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1420 |                 .addFunction ("phase_control", &Stripable::phase_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1421 |                 .addFunction ("trim_control", &Stripable::trim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1422 |                 .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1423 |                 .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1424 |                 .addFunction ("mapped_control", &Stripable::mapped_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1425 |                 .addFunction ("mapped_output", &Stripable::mapped_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1426 |                 .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1427 |                 .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1428 |                 .addFunction ("pan_width_control", &Stripable::pan_width_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1429 |                 .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1430 |                 .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1431 |                 .addFunction ("send_level_controllable", &Stripable::send_level_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1432 |                 .addFunction ("send_enable_controllable", &Stripable::send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1433 |                 .addFunction ("send_pan_azimuth_controllable", &Stripable::send_pan_azimuth_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1434 |                 .addFunction ("send_pan_azimuth_enable_controllable", &Stripable::send_pan_azimuth_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1435 |                 .addFunction ("send_name", &Stripable::send_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1436 |                 .addFunction ("monitor_control", &Stripable::monitor_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1437 |                 .addFunction ("master_send_enable_controllable", &Stripable::master_send_enable_controllable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1438 |                 .addFunction ("eq_band_cnt", &Stripable::eq_band_cnt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1439 |                 .addFunction ("eq_band_name", &Stripable::eq_band_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1440 |                 .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1441 |                 .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1442 |                 .addFunction ("slaved_to", &Stripable::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1443 |                 .addFunction ("slaved", &Stripable::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1444 | 
      |                               
 1445 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1446 | 
      |                               
 1447 |                 .deriveWSPtrClass <VCA, Stripable> ("VCA")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1448 |                 .addFunction ("full_name", &VCA::full_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1449 |                 .addFunction ("number", &VCA::number)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1450 |                 .addFunction ("gain_control", &VCA::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1451 |                 .addFunction ("solo_control", &VCA::solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1452 |                 .addFunction ("mute_control", &VCA::mute_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1453 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1454 | 
      |                               
 1455 |                 .deriveWSPtrClass <Route, Stripable> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1456 |                 .addCast<Track> ("to_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1457 |                 .addFunction ("set_name", &Route::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1458 |                 .addFunction ("comment", &Route::comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                 .addFunction ("active", &Route::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                 .addFunction ("data_type", &Route::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1461 |                 .addFunction ("set_active", &Route::set_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1462 |                 .addFunction ("nth_plugin", &Route::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 .addFunction ("nth_processor", &Route::nth_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1464 |                 .addFunction ("nth_send", &Route::nth_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1465 |                 .addFunction ("add_foldback_send", &Route::add_foldback_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1466 |                 .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1467 |                 .addFunction ("remove_processor", &Route::remove_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1468 |                 .addFunction ("remove_processors", &Route::remove_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1469 |                 .addFunction ("replace_processor", &Route::replace_processor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1470 |                 .addFunction ("reorder_processors", &Route::reorder_processors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1471 |                 .addFunction ("the_instrument", &Route::the_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1472 |                 .addFunction ("n_inputs", &Route::n_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1473 |                 .addFunction ("n_outputs", &Route::n_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1474 |                 .addFunction ("input", &Route::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1475 |                 .addFunction ("output", &Route::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1476 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1477 |                 .addFunction ("set_comment", &Route::set_comment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1478 |                 .addFunction ("strict_io", &Route::strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1479 |                 .addFunction ("set_strict_io", &Route::set_strict_io)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1480 |                 .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1481 |                 .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1482 |                 .addFunction ("add_sidechain", &Route::add_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1483 |                 .addFunction ("add_aux_send", &Route::add_aux_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1484 |                 .addFunction ("remove_sidechain", &Route::remove_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1485 |                 .addFunction ("main_outs", &Route::main_outs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1486 |                 .addFunction ("muted", &Route::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1487 |                 .addFunction ("soloed", &Route::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1488 |                 .addFunction ("amp", &Route::amp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1489 |                 .addFunction ("trim", &Route::trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1490 |                 .addFunction ("peak_meter", (std::shared_ptr<PeakMeter> (Route::*)())&Route::peak_meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1491 |                 .addFunction ("set_meter_point", &Route::set_meter_point)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1492 |                 .addFunction ("signal_latency", &Route::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1493 |                 .addFunction ("playback_latency", &Route::playback_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1494 |                 .addFunction ("monitoring_state", &Route::monitoring_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1495 |                 .addFunction ("monitoring_control", &Route::monitoring_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1496 |                 .addFunction ("surround_send", &Route::surround_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1497 |                 .addFunction ("surround_return", &Route::surround_return)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1498 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1499 | 
      |                               
 1500 |                 .deriveWSPtrClass <Playlist, SessionObject> ("Playlist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1501 |                 .addCast<AudioPlaylist> ("to_audioplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1502 |                 .addCast<MidiPlaylist> ("to_midiplaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1503 |                 .addFunction ("set_name", &Playlist::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1504 |                 .addFunction ("region_by_id", &Playlist::region_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1505 |                 .addFunction ("data_type", &Playlist::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1506 |                 .addFunction ("n_regions", &Playlist::n_regions)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1507 |                 //.addFunction ("get_extent", &Playlist::get_extent) // pair<samplepos_t, samplepos_t>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1508 |                 .addFunction ("region_list", &Playlist::region_list)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1509 |                 .addFunction ("add_region", &Playlist::add_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1510 |                 .addFunction ("remove_region", &Playlist::remove_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1511 |                 .addFunction ("regions_at", &Playlist::regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1512 |                 .addFunction ("top_region_at", &Playlist::top_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1513 |                 .addFunction ("top_unmuted_region_at", &Playlist::top_unmuted_region_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1514 |                 .addFunction ("find_next_transient", &Playlist::find_next_transient)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1515 |                 .addFunction ("find_next_region", &Playlist::find_next_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1516 |                 .addFunction ("find_next_region_boundary", &Playlist::find_next_region_boundary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1517 |                 .addFunction ("count_regions_at", &Playlist::count_regions_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1518 |                 .addFunction ("regions_touched", &Playlist::regions_touched)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1519 |                 .addFunction ("regions_with_start_within", &Playlist::regions_with_start_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1520 |                 .addFunction ("regions_with_end_within", &Playlist::regions_with_end_within)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1521 |                 .addFunction ("raise_region", &Playlist::raise_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1522 |                 .addFunction ("lower_region", &Playlist::lower_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1523 |                 .addFunction ("raise_region_to_top", &Playlist::raise_region_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1524 |                 .addFunction ("lower_region_to_bottom", &Playlist::lower_region_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1525 |                 .addFunction ("duplicate", (void (Playlist::*)(std::shared_ptr<Region>, Temporal::timepos_t &, timecnt_t const &, float))&Playlist::duplicate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1526 |                 .addFunction ("duplicate_until", &Playlist::duplicate_until)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1527 |                 .addFunction ("duplicate_range", &Playlist::duplicate_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1528 |                 .addFunction ("combine", &Playlist::combine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1529 |                 .addFunction ("uncombine", &Playlist::uncombine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1530 |                 .addFunction ("used", &Playlist::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1531 |                 .addFunction ("hidden", &Playlist::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1532 |                 .addFunction ("empty", &Playlist::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1533 |                 .addFunction ("shared", &Playlist::shared)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1534 |                 .addFunction ("split_region", &Playlist::split_region)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1535 |                 .addFunction ("get_orig_track_id", &Playlist::get_orig_track_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1536 |                 //.addFunction ("split", &Playlist::split) // XXX needs MusicSample
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1537 |                 .addFunction ("cut", (std::shared_ptr<Playlist> (Playlist::*)(std::list<TimelineRange>&))&Playlist::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1538 | #if 0
      | ~~~~~                         
 1539 |                 .addFunction ("copy", &Playlist::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1540 |                 .addFunction ("paste", &Playlist::paste)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1541 | #endif
      | ~~~~~~                        
 1542 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1543 | 
      |                               
 1544 |                 .beginWSPtrClass <Bundle> ("Bundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1545 |                 .addCast<UserBundle> ("to_userbundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1546 |                 .addFunction ("name", &Bundle::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1547 |                 .addFunction ("n_total", &Bundle::n_total)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1548 |                 .addFunction ("nchannels", &Bundle::nchannels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1549 |                 .addFunction ("channel_name", &Bundle::channel_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1550 |                 .addFunction ("ports_are_inputs", &Bundle::ports_are_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1551 |                 .addFunction ("ports_are_outputs", &Bundle::ports_are_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1552 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1553 | 
      |                               
 1554 |                 .deriveWSPtrClass <UserBundle, Bundle> ("UserBundle")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1555 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1556 | 
      |                               
 1557 |                 .deriveWSPtrClass <AudioPlaylist, Playlist> ("AudioPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1558 |                 .addFunction ("read", &AudioPlaylist::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1559 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1560 | 
      |                               
 1561 |                 .deriveWSPtrClass <MidiPlaylist, Playlist> ("MidiPlaylist")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1562 |                 .addFunction ("set_note_mode", &MidiPlaylist::set_note_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1563 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1564 | 
      |                               
 1565 |                 .beginWSPtrClass <SessionPlaylists> ("SessionPlaylists")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1566 |                 .addFunction ("by_name", &SessionPlaylists::by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1567 |                 .addFunction ("by_id", &SessionPlaylists::by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1568 |                 .addFunction ("source_use_count", &SessionPlaylists::source_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1569 |                 .addFunction ("region_use_count", &SessionPlaylists::region_use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1570 |                 .addFunction ("playlists_for_track", &SessionPlaylists::playlists_for_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1571 |                 .addFunction ("get_used", &SessionPlaylists::get_used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1572 |                 .addFunction ("get_unused", &SessionPlaylists::get_unused)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1573 |                 .addFunction ("n_playlists", &SessionPlaylists::n_playlists)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1574 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1575 | 
      |                               
 1576 |                 .deriveWSPtrClass <Track, Route> ("Track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1577 |                 .addNilPtrConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1578 |                 .addCast<AudioTrack> ("to_audio_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1579 |                 .addCast<MidiTrack> ("to_midi_track")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1580 |                 .addFunction ("set_name", &Track::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1581 |                 .addFunction ("can_record", &Track::can_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1582 |                 .addFunction ("bounceable", &Track::bounceable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1583 |                 .addFunction ("bounce", &Track::bounce)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1584 |                 .addFunction ("bounce_range", &Track::bounce_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1585 |                 .addFunction ("playlist", &Track::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1586 |                 .addFunction ("use_playlist", &Track::use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1587 |                 .addFunction ("use_copy_playlist", &Track::use_copy_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1588 |                 .addFunction ("use_new_playlist", &Track::use_new_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1589 |                 .addFunction ("find_and_use_playlist", &Track::find_and_use_playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1590 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1591 | 
      |                               
 1592 |                 .deriveWSPtrClass <AudioTrack, Track> ("AudioTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1593 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1594 | 
      |                               
 1595 |                 .deriveWSPtrClass <MidiTrack, Track> ("MidiTrack")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1596 |                 .addFunction ("write_immediate_event", &MidiTrack::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1597 |                 .addFunction ("set_input_active", &MidiTrack::set_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1598 |                 .addFunction ("input_active", &MidiTrack::input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1599 |                 .addFunction ("set_capture_channel_mode", &MidiTrack::set_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1600 |                 .addFunction ("set_playback_channel_mode", &MidiTrack::set_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1601 |                 .addFunction ("set_playback_channel_mask", &MidiTrack::set_playback_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1602 |                 .addFunction ("set_capture_channel_mask", &MidiTrack::set_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1603 |                 .addFunction ("get_playback_channel_mode", &MidiTrack::get_playback_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1604 |                 .addFunction ("get_capture_channel_mode", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1605 |                 .addFunction ("get_playback_channel_mask", &MidiTrack::get_capture_channel_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1606 |                 .addFunction ("get_capture_channel_mask", &MidiTrack::get_capture_channel_mask)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1607 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1608 | 
      |                               
 1609 |                 .beginWSPtrClass <AudioReadable> ("Readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1610 |                 .addFunction ("read", &AudioReadable::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1611 |                 .addFunction ("readable_length", &AudioReadable::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1612 |                 .addFunction ("n_channels", &AudioReadable::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1613 |                 .addStaticFunction ("load", &AudioReadable::load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1614 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1615 | 
      |                               
 1616 |                 .deriveWSPtrClass <AudioRom, AudioReadable> ("AudioRom")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1617 |                 .addStaticFunction ("new_rom", &AudioRom::new_rom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1618 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1619 | 
      |                               
 1620 |                 .deriveWSPtrClass <Region, SessionObject> ("Region")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1621 |                 .addCast<MidiRegion> ("to_midiregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1622 |                 .addCast<AudioRegion> ("to_audioregion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1623 | 
      |                               
 1624 |                 .addFunction ("playlist", &Region::playlist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1625 |                 .addFunction ("set_name", &Region::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1626 |                 /* properties */
      |                 ~~~~~~~~~~~~~~~~
 1627 |                 .addFunction ("position", &Region::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1628 |                 .addFunction ("start", &Region::start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1629 |                 .addFunction ("length", &Region::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1630 |                 .addFunction ("layer", &Region::layer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1631 |                 .addFunction ("data_type", &Region::data_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1632 |                 .addFunction ("stretch", &Region::stretch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1633 |                 .addFunction ("shift", &Region::shift)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1634 |                 .addRefFunction ("sync_offset", &Region::sync_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1635 |                 .addFunction ("sync_position", &Region::sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1636 |                 .addFunction ("hidden", &Region::hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1637 |                 .addFunction ("muted", &Region::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1638 |                 .addFunction ("opaque", &Region::opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1639 |                 .addFunction ("locked", &Region::locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1640 |                 .addFunction ("position_locked", &Region::position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1641 |                 .addFunction ("video_locked", &Region::video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1642 |                 .addFunction ("automatic", &Region::automatic)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1643 |                 .addFunction ("whole_file", &Region::whole_file)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1644 |                 .addFunction ("captured", &Region::captured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1645 |                 .addFunction ("can_move", &Region::can_move)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1646 |                 .addFunction ("sync_marked", &Region::sync_marked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1647 |                 .addFunction ("external", &Region::external)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1648 |                 .addFunction ("import", &Region::import)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1649 |                 .addFunction ("covers", (bool (Region::*)(Temporal::timepos_t const &) const) &Region::covers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1650 |                 .addFunction ("at_natural_position", &Region::at_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1651 |                 .addFunction ("is_compound", &Region::is_compound)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1652 |                 .addFunction ("captured_xruns", &Region::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1653 | 
      |                               
 1654 |                 .addFunction ("has_transients", &Region::has_transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1655 |                 .addFunction ("transients", (AnalysisFeatureList (Region::*)())&Region::transients)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1656 | 
      |                               
 1657 | #ifndef NDEBUG // disable region FX for now
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1658 |                 .addFunction ("load_plugin", &Region::load_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1659 |                 .addFunction ("add_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1660 |                 .addFunction ("remove_plugin", &Region::add_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1661 |                 .addFunction ("nth_plugin", &Region::nth_plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1662 | #endif
      | ~~~~~~                        
 1663 | 
      |                               
 1664 |                 /* editing operations */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1665 |                 .addFunction ("set_length", &Region::set_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1666 |                 .addFunction ("set_start", &Region::set_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1667 |                 .addFunction ("set_position", &Region::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1668 |                 .addFunction ("set_initial_position", &Region::set_initial_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1669 |                 .addFunction ("nudge_position", &Region::nudge_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1670 |                 .addFunction ("move_to_natural_position", &Region::move_to_natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1671 |                 .addFunction ("move_start", &Region::move_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1672 |                 .addFunction ("master_sources", &Region::master_sources)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1673 |                 .addFunction ("master_source_names", &Region::master_source_names)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1674 |                 .addFunction ("trim_front", &Region::trim_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1675 |                 .addFunction ("trim_end", &Region::trim_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1676 |                 .addFunction ("trim_to", &Region::trim_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 |                 .addFunction ("cut_front", &Region::cut_front)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1678 |                 .addFunction ("cut_end", &Region::cut_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1679 |                 .addFunction ("raise", &Region::raise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1680 |                 .addFunction ("lower", &Region::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1681 |                 .addFunction ("raise_to_top", &Region::raise_to_top)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1682 |                 .addFunction ("lower_to_bottom", &Region::lower_to_bottom)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1683 |                 .addFunction ("set_sync_position", &Region::set_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1684 |                 .addFunction ("clear_sync_position", &Region::clear_sync_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1685 |                 .addFunction ("set_hidden", &Region::set_hidden)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1686 |                 .addFunction ("set_muted", &Region::set_muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1687 |                 .addFunction ("set_opaque", &Region::set_opaque)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1688 |                 .addFunction ("set_locked", &Region::set_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1689 |                 .addFunction ("set_video_locked", &Region::set_video_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1690 |                 .addFunction ("set_position_locked", &Region::set_position_locked)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1691 |                 .addFunction ("source", &Region::source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1692 |                 .addFunction ("control", static_cast<std::shared_ptr<Evoral::Control>(Region::*)(const Evoral::Parameter&, bool)>(&Region::control))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1693 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1694 | 
      |                               
 1695 |                 .deriveWSPtrClass <MidiRegion, Region> ("MidiRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1696 |                 .addFunction ("do_export", &MidiRegion::do_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1697 |                 .addFunction ("midi_source", &MidiRegion::midi_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1698 |                 .addFunction ("model", (std::shared_ptr<MidiModel> (MidiRegion::*)())&MidiRegion::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1699 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1700 | 
      |                               
 1701 |                 .deriveWSPtrClass <AudioRegion, Region> ("AudioRegion")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1702 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1703 |                 .addFunction ("n_channels", &AudioRegion::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1704 |                 .addFunction ("audio_source", &AudioRegion::audio_source)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1705 |                 .addFunction ("set_scale_amplitude", &AudioRegion::set_scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1706 |                 .addFunction ("scale_amplitude", &AudioRegion::scale_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1707 |                 .addFunction ("maximum_amplitude", &AudioRegion::maximum_amplitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1708 |                 .addFunction ("rms", &AudioRegion::rms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1709 |                 .addFunction ("envelope", &AudioRegion::envelope)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1710 |                 .addFunction ("envelope_active", &AudioRegion::envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1711 |                 .addFunction ("fade_in_active", &AudioRegion::fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1712 |                 .addFunction ("fade_out_active", &AudioRegion::fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1713 |                 .addFunction ("fade_before_fx", &AudioRegion::fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1714 |                 .addFunction ("set_envelope_active", &AudioRegion::set_envelope_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1715 |                 .addFunction ("set_fade_before_fx", &AudioRegion::set_fade_before_fx)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1716 |                 .addFunction ("set_fade_in_active", &AudioRegion::set_fade_in_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1717 |                 .addFunction ("set_fade_in_shape", &AudioRegion::set_fade_in_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1718 |                 .addFunction ("set_fade_in_length", &AudioRegion::set_fade_in_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1719 |                 .addFunction ("set_fade_out_active", &AudioRegion::set_fade_out_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1720 |                 .addFunction ("set_fade_out_shape", &AudioRegion::set_fade_out_shape)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1721 |                 .addFunction ("set_fade_out_length", &AudioRegion::set_fade_out_length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1722 |                 .addRefFunction ("separate_by_channel", &AudioRegion::separate_by_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1723 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1724 | 
      |                               
 1725 |                 .deriveWSPtrClass <Source, SessionObject> ("Source")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1726 |                 .addCast<AudioSource> ("to_audiosource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1727 |                 .addCast<MidiSource> ("to_midisource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1728 |                 .addCast<FileSource> ("to_filesource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1729 |                 .addFunction ("timestamp", &Source::timestamp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1730 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1731 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1732 |                 .addFunction ("natural_position", &Source::natural_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1733 |                 .addFunction ("writable", &Source::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1734 |                 .addFunction ("has_been_analysed", &Source::has_been_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1735 |                 .addFunction ("can_be_analysed", &Source::can_be_analysed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                 .addFunction ("timeline_position", &Source::natural_position) /* duplicate */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1737 |                 .addFunction ("use_count", &Source::use_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1738 |                 .addFunction ("used", &Source::used)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                 .addFunction ("ancestor_name", &Source::ancestor_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1740 |                 .addFunction ("captured_xruns", &Source::captured_xruns)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1741 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1742 | 
      |                               
 1743 |                 .deriveWSPtrClass <FileSource, Source> ("FileSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1744 |                 .addFunction ("path", &FileSource::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1745 |                 .addFunction ("within_session", &FileSource::within_session)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1746 |                 .addFunction ("channel", &FileSource::channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1747 |                 .addFunction ("origin", &FileSource::origin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1748 |                 .addFunction ("take_id", &FileSource::take_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1749 |                 .addFunction ("gain", &FileSource::gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1750 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1751 | 
      |                               
 1752 |                 .deriveWSPtrClass <MidiSource, Source> ("MidiSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1753 |                 .addFunction ("empty", &MidiSource::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1754 |                 .addFunction ("length", &MidiSource::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1755 |                 .addFunction ("model", &MidiSource::model)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1756 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1757 | 
      |                               
 1758 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1759 |                 .addCast<AudioReadable> ("to_readable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1760 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1761 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1762 |                 .addFunction ("empty", &Source::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1763 |                 .addFunction ("length", &Source::length)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1764 |                 .addFunction ("read", &AudioSource::read)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1765 |                 .addFunction ("sample_rate", &AudioSource::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1766 |                 .addFunction ("captured_for", &AudioSource::captured_for)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1767 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1768 | 
      |                               
 1769 |                 .beginWSPtrClass <Latent> ("Latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1770 |                 .addFunction ("effective_latency", &Latent::effective_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1771 |                 .addFunction ("user_latency", &Latent::user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1772 |                 .addFunction ("unset_user_latency", &Latent::unset_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1773 |                 .addFunction ("set_user_latency", &Latent::set_user_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1774 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1775 | 
      |                               
 1776 |                 .deriveClass <CoreSelection, PBD::Stateful> ("Route")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1777 |                 .addFunction ("first_selected_stripable", &CoreSelection::first_selected_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1778 |                 .addFunction ("select_next_stripable", &CoreSelection::select_next_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1779 |                 .addFunction ("select_prev_stripable", &CoreSelection::select_prev_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1780 |                 .addFunction ("clear_stripables", &CoreSelection::clear_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1781 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1782 | 
      |                               
 1783 |                 .beginClass <Latent> ("PDC")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1784 |                 /* cannot reuse "Latent"; weak/shared-ptr refs cannot have static member functions */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1785 |                 .addStaticFunction ("zero_latency", &Latent::zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1786 |                 .addStaticFunction ("force_zero_latency", &Latent::force_zero_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1787 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1788 | 
      |                               
 1789 |                 .beginClass <SimpleExport> ("SimpleExport")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1790 |                 .addFunction ("run_export", &SimpleExport::run_export)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1791 |                 .addFunction ("set_name", &SimpleExport::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1792 |                 .addFunction ("set_folder", &SimpleExport::set_folder)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1793 |                 .addFunction ("set_range", &SimpleExport::set_range)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                 .addFunction ("set_preset", &SimpleExport::set_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1795 |                 .addFunction ("check_outputs", &SimpleExport::check_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1796 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1797 | 
      |                               
 1798 |                 .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1799 |                 .addCast<Slavable> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1800 |                 .addFunction ("automation_control", (std::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1801 |                 .addFunction ("all_automatable_params", &Automatable::all_automatable_params)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1802 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1803 | 
      |                               
 1804 |                 .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1805 |                 .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1806 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1807 | 
      |                               
 1808 |                 .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1809 |                 .addFunction ("apply_command", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit) /* deprecated: left here in case any extant scripts use apply_command */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1810 |                 .addFunction ("apply_diff_command_as_commit", (void (MidiModel::*)(Session*, PBD::Command*))&MidiModel::apply_diff_command_as_commit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1811 |                 .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1812 |                 .addFunction ("new_sysex_diff_command", &MidiModel::new_sysex_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1813 |                 .addFunction ("new_patch_change_diff_command", &MidiModel::new_patch_change_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1814 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1815 | 
      |                               
 1816 |                 .beginNamespace ("MidiModel")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1817 |                 .deriveClass<ARDOUR::MidiModel::DiffCommand, PBD::Command> ("DiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1818 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1819 | 
      |                               
 1820 |                 .deriveClass<ARDOUR::MidiModel::NoteDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1821 |                 .addFunction ("add", &ARDOUR::MidiModel::NoteDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 |                 .addFunction ("remove", &ARDOUR::MidiModel::NoteDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1823 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1824 | 
      |                               
 1825 |                 .deriveClass<ARDOUR::MidiModel::SysExDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1826 |                 .addFunction ("change", &ARDOUR::MidiModel::SysExDiffCommand::change)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1827 |                 .addFunction ("remove", &ARDOUR::MidiModel::SysExDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1828 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1829 | 
      |                               
 1830 |                 .deriveClass<ARDOUR::MidiModel::PatchChangeDiffCommand, ARDOUR::MidiModel::DiffCommand> ("NoteDiffCommand")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1831 |                 .addFunction ("add", &ARDOUR::MidiModel::PatchChangeDiffCommand::add)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1832 |                 .addFunction ("remove", &ARDOUR::MidiModel::PatchChangeDiffCommand::remove)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1833 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1834 | 
      |                               
 1835 |                 .endNamespace () /* ARDOUR::MidiModel */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1836 | 
      |                               
 1837 |                 .beginClass <Plugin::PresetRecord> ("PresetRecord")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1838 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1839 |                 .addData ("uri", &Plugin::PresetRecord::uri, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 |                 .addData ("label", &Plugin::PresetRecord::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1841 |                 .addData ("user", &Plugin::PresetRecord::user, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1842 |                 .addData ("valid", &Plugin::PresetRecord::valid, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1843 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1844 | 
      |                               
 1845 |                 .beginStdVector <Plugin::PresetRecord> ("PresetVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1846 |                 .beginStdList <std::shared_ptr<ARDOUR::PluginInfo> > ("PluginInfoList").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1847 | 
      |                               
 1848 |                 .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1849 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 1850 |                 .addData ("label", &ParameterDescriptor::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1851 |                 .addData ("print_fmt", &ParameterDescriptor::print_fmt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1852 |                 .addData ("step", &ParameterDescriptor::step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1853 |                 .addData ("smallstep", &ParameterDescriptor::smallstep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1854 |                 .addData ("largestep", &ParameterDescriptor::largestep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1855 |                 .addData ("integer_step", &ParameterDescriptor::integer_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1856 |                 .addData ("sr_dependent", &ParameterDescriptor::sr_dependent)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1857 |                 .addData ("enumeration", &ParameterDescriptor::enumeration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1858 |                 .addData ("inline_ctrl", &ParameterDescriptor::inline_ctrl)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1859 |                 .addData ("display_priority", &ParameterDescriptor::display_priority)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1860 |                 .addStaticFunction ("midi_note_name", &ParameterDescriptor::midi_note_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1861 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1862 | 
      |                               
 1863 |                 .beginStdVector <std::shared_ptr<ARDOUR::Processor> > ("ProcessorVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1864 | 
      |                               
 1865 |                 .deriveWSPtrClass <Processor, SessionObject> ("Processor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1866 |                 .addCast<Automatable> ("to_automatable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1867 |                 .addCast<Latent> ("to_latent")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1868 |                 .addCast<PluginInsert> ("to_insert") // deprecated
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1869 |                 .addCast<PluginInsert> ("to_plugininsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1870 |                 .addCast<SideChain> ("to_sidechain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1871 |                 .addCast<IOProcessor> ("to_ioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1872 |                 .addCast<UnknownProcessor> ("to_unknownprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1873 |                 .addCast<Amp> ("to_amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~
 1874 |                 .addCast<DiskIOProcessor> ("to_diskioprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1875 |                 .addCast<DiskReader> ("to_diskreader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1876 |                 .addCast<DiskWriter> ("to_diskwriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1877 |                 .addCast<PeakMeter> ("to_peakmeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1878 |                 .addCast<MonitorProcessor> ("to_monitorprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1879 |                 .addCast<Send> ("to_send")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 1880 |                 .addCast<SurroundSend> ("to_surroundsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1881 |                 .addCast<InternalSend> ("to_internalsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1882 |                 .addCast<PolarityProcessor> ("to_polarityprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1883 |                 .addCast<DelayLine> ("to_delayline")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1884 | #if 0 // those objects are not yet bound
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1885 |                 .addCast<CapturingProcessor> ("to_capturingprocessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1886 | #endif
      | ~~~~~~                        
 1887 |                 .addCast<PeakMeter> ("to_meter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1888 |                 .addFunction ("display_name", &Processor::display_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1889 |                 .addFunction ("display_to_user", &Processor::display_to_user)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1890 |                 .addFunction ("active", &Processor::active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1891 |                 .addFunction ("activate", &Processor::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1892 |                 .addFunction ("deactivate", &Processor::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1893 |                 .addFunction ("input_latency", &Processor::input_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1894 |                 .addFunction ("output_latency", &Processor::output_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1895 |                 .addFunction ("capture_offset", &Processor::capture_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1896 |                 .addFunction ("playback_offset", &Processor::playback_offset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1897 |                 .addFunction ("output_streams", &Processor::output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1898 |                 .addFunction ("input_streams", &Processor::input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1899 |                 .addFunction ("signal_latency", &Processor::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1900 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1901 | 
      |                               
 1902 |                 .deriveWSPtrClass <DiskIOProcessor, Processor> ("DiskIOProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1903 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1904 | 
      |                               
 1905 |                 .deriveWSPtrClass <DiskReader, DiskIOProcessor> ("DiskReader")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1906 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1907 | 
      |                               
 1908 |                 .deriveWSPtrClass <DiskWriter, DiskIOProcessor> ("DiskWriter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1909 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1910 | 
      |                               
 1911 |                 .deriveWSPtrClass <IOProcessor, Processor> ("IOProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1912 |                 .addFunction ("natural_input_streams", &IOProcessor::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1913 |                 .addFunction ("natural_output_streams", &IOProcessor::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1914 |                 .addFunction ("input", (std::shared_ptr<IO>(IOProcessor::*)())&IOProcessor::input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1915 |                 .addFunction ("output", (std::shared_ptr<IO>(IOProcessor::*)())&IOProcessor::output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1916 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1917 | 
      |                               
 1918 |                 .deriveWSPtrClass <SideChain, IOProcessor> ("SideChain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1919 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1920 | 
      |                               
 1921 |                 .deriveWSPtrClass <Delivery, IOProcessor> ("Delivery")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1922 |                 .addFunction ("panner_shell", &Route::panner_shell)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1923 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1924 | 
      |                               
 1925 |                 .deriveWSPtrClass <Send, Delivery> ("Send")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1926 |                 .addCast<InternalSend> ("to_internalsend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1927 |                 .addFunction ("get_delay_in", &Send::get_delay_in)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1928 |                 .addFunction ("get_delay_out", &Send::get_delay_out)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1929 |                 .addFunction ("gain_control", &Send::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1930 |                 .addFunction ("is_foldback", &Send::is_foldback)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1931 |                 .addFunction ("set_remove_on_disconnect", &Send::set_remove_on_disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1932 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1933 | 
      |                               
 1934 |                 .deriveWSPtrClass <InternalSend, Send> ("InternalSend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1935 |                 .addFunction ("set_name", &InternalSend::set_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1936 |                 .addFunction ("display_name", &InternalSend::display_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1937 |                 .addFunction ("source_route", &InternalSend::source_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1938 |                 .addFunction ("target_route", &InternalSend::target_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1939 |                 .addFunction ("allow_feedback", &InternalSend::allow_feedback)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1940 |                 .addFunction ("set_allow_feedback", &InternalSend::set_allow_feedback)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1941 |                 .addFunction ("feeds", &InternalSend::feeds)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1942 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1943 | 
      |                               
 1944 |                 .deriveWSPtrClass <SurroundPannable, Automatable> ("SurroundPannable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1945 |                 .addData ("pan_pos_x", &SurroundPannable::pan_pos_x)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1946 |                 .addData ("pan_pos_y", &SurroundPannable::pan_pos_y)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1947 |                 .addData ("pan_pos_z", &SurroundPannable::pan_pos_z)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1948 |                 .addData ("pan_size", &SurroundPannable::pan_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1949 |                 .addData ("pan_snap", &SurroundPannable::pan_snap)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1950 |                 .addData ("binaural_render_mode", &SurroundPannable::binaural_render_mode)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1951 |                 .addData ("sur_elevation_enable", &SurroundPannable::sur_elevation_enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1952 |                 .addData ("sur_zones", &SurroundPannable::sur_zones)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1953 |                 .addData ("sur_ramp", &SurroundPannable::sur_ramp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1954 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1955 | 
      |                               
 1956 |                 .deriveWSPtrClass <SurroundSend, Processor> ("SurroundSend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1957 |                 .addFunction ("get_delay_in", &SurroundSend::get_delay_in)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1958 |                 .addFunction ("get_delay_out", &SurroundSend::get_delay_out)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1959 |                 .addFunction ("gain_control", &SurroundSend::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1960 |                 .addFunction ("n_pannables", &SurroundSend::n_pannables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1961 |                 .addFunction ("pannable", &SurroundSend::pannable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1962 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 1963 | 
      |                               
 1964 |                 .deriveWSPtrClass <SurroundReturn, Processor> ("SurroundReturn")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1965 |                 .addFunction ("set_bed_mix", &SurroundReturn::set_bed_mix)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1966 |                 .addFunction ("set_sync_and_align", &SurroundReturn::set_sync_and_align)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1967 |                 .addFunction ("set_ffoa", &SurroundReturn::set_ffoa)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1968 |                 .addFunction ("set_with_all_metadata", &SurroundReturn::set_with_all_metadata)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1969 |                 .addFunction ("have_au_renderer", &SurroundReturn::have_au_renderer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1970 |                 .addFunction ("load_au_preset", &SurroundReturn::load_au_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1971 |                 .addFunction ("set_au_param", &SurroundReturn::set_au_param)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1972 |                 .addFunction ("integrated_loudness", &SurroundReturn::integrated_loudness)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1973 |                 .addFunction ("max_momentary", &SurroundReturn::max_momentary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1974 |                 .addFunction ("momentary", &SurroundReturn::momentary)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1975 |                 .addFunction ("max_dbtp", &SurroundReturn::max_dbtp)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1976 |                 .addFunction ("n_channels", &SurroundReturn::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1977 |                 .addFunction ("total_n_channels", &SurroundReturn::total_n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1978 |                 .addFunction ("output_format_controllable", &SurroundReturn::output_format_controllable)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<PBD::Controllable>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::Plugin::IOPortDescription]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::Plugin::IOPortDescription]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::Plugin::IOPortDescription; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = ARDOUR::Plugin::IOPortDescription; T = ARDOUR::Plugin::IOPortDescription; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = ARDOUR::Plugin::IOPortDescription; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = ARDOUR::Plugin::IOPortDescription; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = ARDOUR::Plugin::IOPortDescription (ARDOUR::Plugin::*)(ARDOUR::DataType, bool, unsigned int) const; T = ARDOUR::Plugin; ReturnType = ARDOUR::Plugin::IOPortDescription; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = ARDOUR::Plugin::IOPortDescription (ARDOUR::Plugin::*)(ARDOUR::DataType, bool, unsigned int) const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = ARDOUR::Plugin::IOPortDescription (ARDOUR::Plugin::*)(ARDOUR::DataType, bool, unsigned int) const; T = ARDOUR::Plugin]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2033:16:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2001 | 
      |                               
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 2010 | 
      |                               
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::Plugin::IOPortDescription*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Plugin>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Plugin>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Plugin>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Plugin>; T = std::shared_ptr<ARDOUR::Plugin>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Plugin>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Plugin>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:353:32:   required from 'static int luabridge::CFunc::CallMemberPtr<MemFnPtr, T, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::Plugin> (ARDOUR::PluginInsert::*)(unsigned int) const; T = ARDOUR::PluginInsert; ReturnType = std::shared_ptr<ARDOUR::Plugin>; lua_State = lua_State]'
  353 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (tt, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1007:28:   required from 'static void luabridge::CFunc::CallMemberPtrFunctionHelper<MemFnPtr>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::Plugin> (ARDOUR::PluginInsert::*)(unsigned int) const; lua_State = lua_State]'
 1007 |       lua_pushcclosure (L, &CallMemberPtr <MemFnPtr, T>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1314:55:   required from 'luabridge::Namespace::WSPtrClass<T>& luabridge::Namespace::WSPtrClass<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::Plugin> (ARDOUR::PluginInsert::*)(unsigned int) const; T = ARDOUR::PluginInsert]'
 1314 |       CFunc::CallMemberPtrFunctionHelper <MemFn>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2045:16:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2001 | 
      |                               
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~
 2010 | 
      |                               
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 2038 | 
      |                               
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~  
 2043 | 
      |                               
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Plugin>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >; T = std::shared_ptr<const std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:482:22:   required from 'static int luabridge::Namespace::ClassBase::ctorPtrPlacementProxy(lua_State*) [with Params = void; T = std::shared_ptr<const std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >; C = const std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; lua_State = lua_State]'
  482 |       Stack<T>::push (L, newobject);
      |       ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1118:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addPtrConstructor() [with MemFn = void (*)(); PT = const std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; T = std::shared_ptr<const std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >]'
 1118 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1119 |         &ctorPtrPlacementProxy <typename FuncTraits <MemFn>::Params, T, PT>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1133:50:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidPtrConstructor() [with PT = const std::__cxx11::list<std::shared_ptr<ARDOUR::Route> >; T = std::shared_ptr<const std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >]'
 1133 |       return addPtrConstructor <void (*) (), PT> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2270:70:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                           
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                          
 2001 | 
      |                                                                                     
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                          
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                                    
 2010 | 
      |                                                                                     
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                    
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2038 | 
      |                                                                                     
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2043 | 
      |                                                                                     
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2072 | 
      |                                                                                     
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2080 | 
      |                                                                                     
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2089 | 
      |                                                                                     
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2098 | 
      |                                                                                     
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2104 | 
      |                                                                                     
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2122 | 
      |                                                                                     
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2133 | 
      |                                                                                     
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2138 | 
      |                                                                                     
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2141 | 
      |                                                                                     
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2145 | 
      |                                                                                     
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2151 | 
      |                                                                                     
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2158 | 
      |                                                                                     
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2163 | 
      |                                                                                     
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2167 | 
      |                                                                                     
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2172 | 
      |                                                                                     
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2179 | 
      |                                                                                     
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2208 | 
      |                                                                                     
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2211 | 
      |                                                                                     
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2214 | 
      |                                                                                     
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2218 | 
      |                                                                                     
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2221 | 
      |                                                                                     
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2224 | 
      |                                                                                     
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2227 | 
      |                                                                                     
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                              
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2235 | 
      |                                                                                     
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2240 | 
      |                                                                                     
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2244 | 
      |                                                                                     
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2247 | 
      |                                                                                     
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2251 | 
      |                                                                                     
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2255 | 
      |                                                                                     
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2259 | 
      |                                                                                     
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2263 | 
      |                                                                                     
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                        
 2267 | 
      |                                                                                     
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                 
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const std::__cxx11::list<std::shared_ptr<ARDOUR::Route> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<const std::vector<std::shared_ptr<ARDOUR::Bundle> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<const std::vector<std::shared_ptr<ARDOUR::Bundle> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<const std::vector<std::shared_ptr<ARDOUR::Bundle> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<const std::vector<std::shared_ptr<ARDOUR::Bundle> > >; T = std::shared_ptr<const std::vector<std::shared_ptr<ARDOUR::Bundle> > >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<const std::vector<std::shared_ptr<ARDOUR::Bundle> > >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<const std::vector<std::shared_ptr<ARDOUR::Bundle> > >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:482:22:   required from 'static int luabridge::Namespace::ClassBase::ctorPtrPlacementProxy(lua_State*) [with Params = void; T = std::shared_ptr<const std::vector<std::shared_ptr<ARDOUR::Bundle> > >; C = const std::vector<std::shared_ptr<ARDOUR::Bundle> >; lua_State = lua_State]'
  482 |       Stack<T>::push (L, newobject);
      |       ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1118:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addPtrConstructor() [with MemFn = void (*)(); PT = const std::vector<std::shared_ptr<ARDOUR::Bundle> >; T = std::shared_ptr<const std::vector<std::shared_ptr<ARDOUR::Bundle> > >]'
 1118 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1119 |         &ctorPtrPlacementProxy <typename FuncTraits <MemFn>::Params, T, PT>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1133:50:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidPtrConstructor() [with PT = const std::vector<std::shared_ptr<ARDOUR::Bundle> >; T = std::shared_ptr<const std::vector<std::shared_ptr<ARDOUR::Bundle> > >]'
 1133 |       return addPtrConstructor <void (*) (), PT> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2281:73:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                              
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                             
 2001 | 
      |                                                                                        
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                             
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                                       
 2010 | 
      |                                                                                        
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                       
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                 
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                   
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                 
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2038 | 
      |                                                                                        
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2043 | 
      |                                                                                        
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2072 | 
      |                                                                                        
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2080 | 
      |                                                                                        
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2089 | 
      |                                                                                        
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2098 | 
      |                                                                                        
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2104 | 
      |                                                                                        
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                  
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2122 | 
      |                                                                                        
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2133 | 
      |                                                                                        
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2138 | 
      |                                                                                        
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2141 | 
      |                                                                                        
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2145 | 
      |                                                                                        
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2151 | 
      |                                                                                        
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2158 | 
      |                                                                                        
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2163 | 
      |                                                                                        
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2167 | 
      |                                                                                        
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2172 | 
      |                                                                                        
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2179 | 
      |                                                                                        
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2208 | 
      |                                                                                        
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2211 | 
      |                                                                                        
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2214 | 
      |                                                                                        
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2218 | 
      |                                                                                        
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2221 | 
      |                                                                                        
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2224 | 
      |                                                                                        
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2227 | 
      |                                                                                        
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                                 
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2235 | 
      |                                                                                        
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2240 | 
      |                                                                                        
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2244 | 
      |                                                                                        
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2247 | 
      |                                                                                        
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2251 | 
      |                                                                                        
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2255 | 
      |                                                                                        
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2259 | 
      |                                                                                        
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2263 | 
      |                                                                                        
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2267 | 
      |                                                                                        
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                    
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2272 | 
      |                                                                                        
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                          
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                           
 2278 | 
      |                                                                                        
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                   
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<const std::vector<std::shared_ptr<ARDOUR::Bundle> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::vector<std::shared_ptr<ARDOUR::Bundle> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::vector<std::shared_ptr<ARDOUR::Bundle> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::vector<std::shared_ptr<ARDOUR::Bundle> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::vector<std::shared_ptr<ARDOUR::Bundle> >; T = std::vector<std::shared_ptr<ARDOUR::Bundle> >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::vector<std::shared_ptr<ARDOUR::Bundle> >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::vector<std::shared_ptr<ARDOUR::Bundle> >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1248:20:   required from 'static int luabridge::CFunc::tableToListHelper(lua_State*, C*) [with T = std::shared_ptr<ARDOUR::Bundle>; C = std::vector<std::shared_ptr<ARDOUR::Bundle> >; lua_State = lua_State]'
 1248 |     Stack<C>::push (L, *t);
      |     ~~~~~~~~~~~~~~~^~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1264:36:   required from 'static int luabridge::CFunc::ptrTableToList(lua_State*) [with T = std::shared_ptr<ARDOUR::Bundle>; C = std::vector<std::shared_ptr<ARDOUR::Bundle> >; lua_State = lua_State]'
 1264 |     return tableToListHelper<T, C> (L, t->get());
      |            ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2174:24:   required from 'luabridge::Namespace::Class<std::shared_ptr<std::vector<T> > > luabridge::Namespace::beginPtrStdVector(const char*) [with T = std::shared_ptr<ARDOUR::Bundle>]'
 2167 |     return beginClass<std::shared_ptr<LT> > (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2168 |       //.addVoidPtrConstructor<LT> ()
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2169 |       .addPtrFunction ("empty", (bool (LT::*)()const)&LT::empty)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |       .addPtrFunction ("size", (T_SIZE (LT::*)()const)&LT::size)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |       .addPtrFunction ("clear", (void (LT::*)())&LT::clear)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2172 |       .addPtrFunction ("push_back", (void (LT::*)(const T&))&LT::push_back)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2173 |       .addPtrFunction ("at", (T_REF (LT::*)(T_SIZE))&LT::at)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |       .addExtCFunction ("add", &CFunc::ptrTableToList<T, LT>)
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2285:49:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2001 | 
      |                                                                
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                               
 2010 | 
      |                                                                
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2038 | 
      |                                                                
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2043 | 
      |                                                                
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2072 | 
      |                                                                
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2080 | 
      |                                                                
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2089 | 
      |                                                                
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2098 | 
      |                                                                
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2104 | 
      |                                                                
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2122 | 
      |                                                                
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2133 | 
      |                                                                
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2138 | 
      |                                                                
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2141 | 
      |                                                                
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2145 | 
      |                                                                
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2151 | 
      |                                                                
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2158 | 
      |                                                                
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2163 | 
      |                                                                
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2167 | 
      |                                                                
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2172 | 
      |                                                                
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2179 | 
      |                                                                
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2208 | 
      |                                                                
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2211 | 
      |                                                                
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2214 | 
      |                                                                
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2218 | 
      |                                                                
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2221 | 
      |                                                                
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2224 | 
      |                                                                
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2227 | 
      |                                                                
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                         
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2235 | 
      |                                                                
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2240 | 
      |                                                                
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2244 | 
      |                                                                
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2247 | 
      |                                                                
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2251 | 
      |                                                                
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2255 | 
      |                                                                
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2259 | 
      |                                                                
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2263 | 
      |                                                                
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2267 | 
      |                                                                
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2272 | 
      |                                                                
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2278 | 
      |                                                                
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                   
 2283 | 
      |                                                                
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::vector<std::shared_ptr<ARDOUR::Bundle> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<std::vector<std::shared_ptr<ARDOUR::Bundle> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<std::vector<std::shared_ptr<ARDOUR::Bundle> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<std::vector<std::shared_ptr<ARDOUR::Bundle> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<std::vector<std::shared_ptr<ARDOUR::Bundle> > >; T = std::shared_ptr<std::vector<std::shared_ptr<ARDOUR::Bundle> > >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<std::vector<std::shared_ptr<ARDOUR::Bundle> > >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<std::vector<std::shared_ptr<ARDOUR::Bundle> > >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:482:22:   required from 'static int luabridge::Namespace::ClassBase::ctorPtrPlacementProxy(lua_State*) [with Params = void; T = std::shared_ptr<std::vector<std::shared_ptr<ARDOUR::Bundle> > >; C = std::vector<std::shared_ptr<ARDOUR::Bundle> >; lua_State = lua_State]'
  482 |       Stack<T>::push (L, newobject);
      |       ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1118:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addPtrConstructor() [with MemFn = void (*)(); PT = std::vector<std::shared_ptr<ARDOUR::Bundle> >; T = std::shared_ptr<std::vector<std::shared_ptr<ARDOUR::Bundle> > >]'
 1118 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1119 |         &ctorPtrPlacementProxy <typename FuncTraits <MemFn>::Params, T, PT>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1133:50:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidPtrConstructor() [with PT = std::vector<std::shared_ptr<ARDOUR::Bundle> >; T = std::shared_ptr<std::vector<std::shared_ptr<ARDOUR::Bundle> > >]'
 1133 |       return addPtrConstructor <void (*) (), PT> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2286:67:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                        
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                       
 2001 | 
      |                                                                                  
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                       
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                                 
 2010 | 
      |                                                                                  
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                 
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2038 | 
      |                                                                                  
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2043 | 
      |                                                                                  
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2072 | 
      |                                                                                  
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2080 | 
      |                                                                                  
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2089 | 
      |                                                                                  
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2098 | 
      |                                                                                  
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2104 | 
      |                                                                                  
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2122 | 
      |                                                                                  
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2133 | 
      |                                                                                  
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2138 | 
      |                                                                                  
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2141 | 
      |                                                                                  
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2145 | 
      |                                                                                  
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2151 | 
      |                                                                                  
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2158 | 
      |                                                                                  
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2163 | 
      |                                                                                  
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2167 | 
      |                                                                                  
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2172 | 
      |                                                                                  
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2179 | 
      |                                                                                  
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2208 | 
      |                                                                                  
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2211 | 
      |                                                                                  
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2214 | 
      |                                                                                  
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2218 | 
      |                                                                                  
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2221 | 
      |                                                                                  
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2224 | 
      |                                                                                  
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2227 | 
      |                                                                                  
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                           
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2235 | 
      |                                                                                  
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2240 | 
      |                                                                                  
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2244 | 
      |                                                                                  
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2247 | 
      |                                                                                  
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2251 | 
      |                                                                                  
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2255 | 
      |                                                                                  
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2259 | 
      |                                                                                  
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2263 | 
      |                                                                                  
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2267 | 
      |                                                                                  
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2272 | 
      |                                                                                  
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                    
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2278 | 
      |                                                                                  
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                     
 2283 | 
      |                                                                                  
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                   
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<std::vector<std::shared_ptr<ARDOUR::Bundle> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> > >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> > >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> > >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> > >; T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> > >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> > >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> > >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:482:22:   required from 'static int luabridge::Namespace::ClassBase::ctorPtrPlacementProxy(lua_State*) [with Params = void; T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> > >; C = std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> >; lua_State = lua_State]'
  482 |       Stack<T>::push (L, newobject);
      |       ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1118:24:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addPtrConstructor() [with MemFn = void (*)(); PT = std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> >; T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> > >]'
 1118 |       lua_pushcclosure (L,
      |       ~~~~~~~~~~~~~~~~~^~~
 1119 |         &ctorPtrPlacementProxy <typename FuncTraits <MemFn>::Params, T, PT>, 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:1133:50:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addVoidPtrConstructor() [with PT = std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> >; T = std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> > >]'
 1133 |       return addPtrConstructor <void (*) (), PT> ();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/ardour/luabindings.cc:2369:76:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                 
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                                
 2001 | 
      |                                                                                           
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                                
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                                          
 2010 | 
      |                                                                                           
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                          
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                    
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                    
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2038 | 
      |                                                                                           
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2043 | 
      |                                                                                           
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2072 | 
      |                                                                                           
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2080 | 
      |                                                                                           
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2089 | 
      |                                                                                           
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2098 | 
      |                                                                                           
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2104 | 
      |                                                                                           
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                     
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2122 | 
      |                                                                                           
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2133 | 
      |                                                                                           
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2138 | 
      |                                                                                           
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2141 | 
      |                                                                                           
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2145 | 
      |                                                                                           
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2151 | 
      |                                                                                           
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2158 | 
      |                                                                                           
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2163 | 
      |                                                                                           
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2167 | 
      |                                                                                           
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2172 | 
      |                                                                                           
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2179 | 
      |                                                                                           
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2208 | 
      |                                                                                           
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2211 | 
      |                                                                                           
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2214 | 
      |                                                                                           
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                 
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2218 | 
      |                                                                                           
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2221 | 
      |                                                                                           
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2224 | 
      |                                                                                           
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2227 | 
      |                                                                                           
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                                    
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2235 | 
      |                                                                                           
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2240 | 
      |                                                                                           
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2244 | 
      |                                                                                           
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2247 | 
      |                                                                                           
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2251 | 
      |                                                                                           
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2255 | 
      |                                                                                           
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2259 | 
      |                                                                                           
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2263 | 
      |                                                                                           
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2267 | 
      |                                                                                           
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                       
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2272 | 
      |                                                                                           
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                             
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2278 | 
      |                                                                                           
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2283 | 
      |                                                                                           
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                            
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2288 | 
      |                                                                                           
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2292 | 
      |                                                                                           
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2296 | 
      |                                                                                           
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2300 | 
      |                                                                                           
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2304 | 
      |                                                                                           
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2308 | 
      |                                                                                           
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2312 | 
      |                                                                                           
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2316 | 
      |                                                                                           
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2320 | 
      |                                                                                           
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2324 | 
      |                                                                                           
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2328 | 
      |                                                                                           
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2332 | 
      |                                                                                           
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2338 | 
      |                                                                                           
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                                               
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2342 | 
      |                                                                                           
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2346 | 
      |                                                                                           
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2350 | 
      |                                                                                           
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2354 | 
      |                                                                                           
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2357 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2358 | 
      |                                                                                           
 2359 |                 .beginConstStdCPtrList <Location> ("LocationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2360 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2361 | 
      |                                                                                           
 2362 |                 .beginConstStdVector <Evoral::Parameter> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2363 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2364 | 
      |                                                                                           
 2365 |                 .beginStdList <std::shared_ptr<AutomationControl> > ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2366 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                              
 2367 | 
      |                                                                                           
 2368 |                 .beginPtrStdList <std::shared_ptr<AutomationControl> > ("ControlListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2369 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <AutomationControl> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<std::__cxx11::list<std::shared_ptr<ARDOUR::AutomationControl> > >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::AudioBackend>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::AudioBackend>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::AudioBackend>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::AudioBackend>; T = std::shared_ptr<ARDOUR::AudioBackend>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioBackend>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::AudioBackend>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:312:32:   required from 'static int luabridge::CFunc::CallMember<MemFnPtr, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::AudioBackend> (ARDOUR::AudioEngine::*)(const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&); ReturnType = std::shared_ptr<ARDOUR::AudioBackend>; lua_State = lua_State]'
  312 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (t, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:995:28:   required from 'static void luabridge::CFunc::CallMemberFunctionHelper<MemFnPtr, false>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::AudioBackend> (ARDOUR::AudioEngine::*)(const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&); lua_State = lua_State]'
  995 |       lua_pushcclosure (L, &CallMember <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:982:95:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::AudioBackend> (ARDOUR::AudioEngine::*)(const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&); T = ARDOUR::AudioEngine]'
  982 |       CFunc::CallMemberFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2962:16:   required from here
 2890 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2891 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 2892 |                 .beginClass <AudioBackendInfo> ("AudioBackendInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2893 |                 .addData ("name", &AudioBackendInfo::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2894 |                 .endClass()
      |                 ~~~~~~~~~~~   
 2895 |                 .beginConstStdVector <const AudioBackendInfo*> ("BackendVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2896 | 
      |                               
 2897 |                 .beginClass <AudioBackend::DeviceStatus> ("DeviceStatus")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2898 |                 .addData ("name", &AudioBackend::DeviceStatus::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2899 |                 .addData ("available", &AudioBackend::DeviceStatus::available)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2900 |                 .endClass()
      |                 ~~~~~~~~~~~   
 2901 |                 .beginStdVector <AudioBackend::DeviceStatus> ("DeviceStatusVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2902 | 
      |                               
 2903 |                 .beginWSPtrClass <AudioBackend> ("AudioBackend")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2904 |                 .addFunction ("info", &AudioBackend::info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2905 |                 .addFunction ("sample_rate", &AudioBackend::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2906 |                 .addFunction ("buffer_size", &AudioBackend::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2907 |                 .addFunction ("period_size", &AudioBackend::period_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2908 |                 .addFunction ("dsp_load", &AudioBackend::dsp_load)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2909 | 
      |                               
 2910 |                 .addFunction ("set_sample_rate", &AudioBackend::set_sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2911 |                 .addFunction ("set_buffer_size", &AudioBackend::set_buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2912 |                 .addFunction ("set_peridod_size", &AudioBackend::set_peridod_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2913 | 
      |                               
 2914 |                 .addFunction ("enumerate_drivers", &AudioBackend::enumerate_drivers)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2915 |                 .addFunction ("driver_name", &AudioBackend::driver_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2916 |                 .addFunction ("set_driver", &AudioBackend::set_driver)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2917 | 
      |                               
 2918 |                 .addFunction ("use_separate_input_and_output_devices", &AudioBackend::use_separate_input_and_output_devices)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2919 |                 .addFunction ("enumerate_devices", &AudioBackend::enumerate_devices)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2920 |                 .addFunction ("enumerate_input_devices", &AudioBackend::enumerate_input_devices)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2921 |                 .addFunction ("enumerate_output_devices", &AudioBackend::enumerate_output_devices)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2922 |                 .addFunction ("device_name", &AudioBackend::device_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2923 |                 .addFunction ("input_device_name", &AudioBackend::input_device_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2924 |                 .addFunction ("output_device_name", &AudioBackend::output_device_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2925 |                 .addFunction ("set_device_name", &AudioBackend::set_device_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2926 |                 .addFunction ("set_input_device_name", &AudioBackend::set_input_device_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2927 |                 .addFunction ("set_output_device_name", &AudioBackend::set_output_device_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2928 |                 .endClass()
      |                 ~~~~~~~~~~~   
 2929 | 
      |                               
 2930 |                 .beginClass <PortEngine> ("PortEngine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2931 |                 .endClass()
      |                 ~~~~~~~~~~~   
 2932 | 
      |                               
 2933 |                 .beginClass <LatencyRange> ("LatencyRange")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2934 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~
 2935 |                 .addData ("min", &LatencyRange::min)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2936 |                 .addData ("max", &LatencyRange::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2937 |                 .endClass()
      |                 ~~~~~~~~~~~   
 2938 | 
      |                               
 2939 |                 .beginClass <PortManager> ("PortManager")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2940 |                 .addFunction ("port_engine", &PortManager::port_engine)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2941 |                 .addFunction ("connected", &PortManager::connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2942 |                 .addFunction ("connect", &PortManager::connect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2943 |                 .addFunction ("physically_connected", &PortManager::physically_connected)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2944 |                 .addFunction ("disconnect", (int (PortManager::*)(const std::string&, const std::string&))&PortManager::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2945 |                 .addFunction ("disconnect_port", (int (PortManager::*)(std::shared_ptr<Port>))&PortManager::disconnect)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2946 |                 .addFunction ("get_port_by_name", &PortManager::get_port_by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2947 |                 .addFunction ("get_pretty_name_by_name", &PortManager::get_pretty_name_by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2948 |                 .addFunction ("port_is_physical", &PortManager::port_is_physical)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2949 |                 .addFunction ("get_physical_outputs", &PortManager::get_physical_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2950 |                 .addFunction ("get_physical_inputs", &PortManager::get_physical_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2951 |                 .addFunction ("n_physical_outputs", &PortManager::n_physical_outputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2952 |                 .addFunction ("n_physical_inputs", &PortManager::n_physical_inputs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2953 |                 .addFunction ("reset_input_meters", &PortManager::reset_input_meters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2954 |                 .addRefFunction ("get_connections", &PortManager::get_connections)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2955 |                 .addRefFunction ("get_ports", (int (PortManager::*)(DataType, PortManager::PortList&))&PortManager::get_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2956 |                 .addRefFunction ("get_backend_ports", (int (PortManager::*)(const std::string&, DataType, PortFlags, std::vector<std::string>&))&PortManager::get_ports)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2957 |                 .endClass()
      |                 ~~~~~~~~~~~   
 2958 | 
      |                               
 2959 |                 .deriveClass <AudioEngine, PortManager> ("AudioEngine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2960 |                 .addFunction ("available_backends", &AudioEngine::available_backends)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2961 |                 .addFunction ("current_backend_name", &AudioEngine::current_backend_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2962 |                 .addFunction ("set_backend", &AudioEngine::set_backend)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::AudioBackend>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::MixerScene>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::MixerScene>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::MixerScene>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::MixerScene>; T = std::shared_ptr<ARDOUR::MixerScene>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MixerScene>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::MixerScene>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:312:32:   required from 'static int luabridge::CFunc::CallMember<MemFnPtr, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::MixerScene> (ARDOUR::Session::*)(long unsigned int, bool); ReturnType = std::shared_ptr<ARDOUR::MixerScene>; lua_State = lua_State]'
  312 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (t, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:995:28:   required from 'static void luabridge::CFunc::CallMemberFunctionHelper<MemFnPtr, false>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::MixerScene> (ARDOUR::Session::*)(long unsigned int, bool); lua_State = lua_State]'
  995 |       lua_pushcclosure (L, &CallMember <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:982:95:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::MixerScene> (ARDOUR::Session::*)(long unsigned int, bool); T = ARDOUR::Session]'
  982 |       CFunc::CallMemberFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3086:16:   required from here
 3030 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3031 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 3032 |                 .beginClass <Session> ("Session")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3033 |                 .addFunction ("scripts_changed", &Session::scripts_changed) // used internally
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3034 |                 .addFunction ("engine_speed", &Session::engine_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3035 |                 .addFunction ("actual_speed", &Session::actual_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3036 |                 .addFunction ("transport_speed", &Session::transport_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3037 |                 .addFunction ("transport_stopped", &Session::transport_stopped)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3038 |                 .addFunction ("transport_stopped_or_stopping", &Session::transport_stopped_or_stopping)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3039 |                 .addFunction ("transport_state_rolling", &Session::transport_state_rolling)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3040 |                 .addFunction ("transport_rolling", &Session::transport_rolling)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3041 |                 .addFunction ("transport_will_roll_forwards", &Session::transport_will_roll_forwards)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3042 |                 .addFunction ("request_transport_speed", &Session::request_transport_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3043 |                 .addFunction ("transport_sample", &Session::transport_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3044 |                 .addFunction ("sample_rate", &Session::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3045 |                 .addFunction ("nominal_sample_rate", &Session::nominal_sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3046 |                 .addFunction ("samples_per_timecode_frame", &Session::samples_per_timecode_frame)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3047 |                 .addFunction ("timecode_frames_per_hour", &Session::timecode_frames_per_hour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3048 |                 .addFunction ("timecode_frames_per_second", &Session::timecode_frames_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3049 |                 .addFunction ("timecode_drop_frames", &Session::timecode_drop_frames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3050 |                 .addFunction ("request_locate", &Session::request_locate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3051 |                 .addFunction ("request_roll", &Session::request_roll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3052 |                 .addFunction ("request_stop", &Session::request_stop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3053 |                 .addFunction ("request_play_loop", &Session::request_play_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3054 |                 .addFunction ("request_bounded_roll", &Session::request_bounded_roll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3055 |                 .addFunction ("preroll_samples", &Session::preroll_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3056 |                 .addFunction ("request_preroll_record_trim", &Session::request_preroll_record_trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3057 |                 .addFunction ("request_count_in_record", &Session::request_count_in_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3058 |                 .addFunction ("get_play_loop", &Session::get_play_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3059 |                 .addFunction ("get_xrun_count", &Session::get_xrun_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3060 |                 .addFunction ("reset_xrun_count", &Session::reset_xrun_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3061 |                 .addFunction ("last_transport_start", &Session::last_transport_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3062 |                 .addFunction ("goto_start", &Session::goto_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3063 |                 .addFunction ("goto_end", &Session::goto_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3064 |                 .addFunction ("current_start_sample", &Session::current_start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3065 |                 .addFunction ("current_end_sample", &Session::current_end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3066 |                 .addFunction ("actively_recording", &Session::actively_recording)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3067 |                 .addFunction ("new_audio_track", &Session::new_audio_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3068 |                 .addFunction ("new_audio_route", &Session::new_audio_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3069 |                 .addFunction ("new_midi_track", &Session::new_midi_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3070 |                 .addFunction ("new_midi_route", &Session::new_midi_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3071 | 
      |                               
 3072 |                 .addFunction ("add_master_bus", &Session::add_master_bus)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3073 | 
      |                               
 3074 |                 .addFunction ("get_routes", &Session::get_routes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3075 |                 .addFunction ("get_tracks", &Session::get_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3076 |                 .addFunction ("get_stripables", (StripableList (Session::*)() const)&Session::get_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3077 |                 .addFunction ("get_routelist", &Session::get_routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3078 |                 .addFunction ("plot_process_graph", &Session::plot_process_graph)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3079 | 
      |                               
 3080 |                 .addFunction ("bundles", &Session::bundles)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3081 | 
      |                               
 3082 |                 .addFunction ("apply_nth_mixer_scene", (bool (Session::*)(size_t))&Session::apply_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3083 |                 .addFunction ("apply_nth_mixer_scene_to", (bool (Session::*)(size_t, RouteList const&))&Session::apply_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3084 |                 .addFunction ("store_nth_mixer_scene", &Session::store_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3085 |                 .addFunction ("nth_mixer_scene_valid", &Session::nth_mixer_scene_valid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3086 |                 .addFunction ("nth_mixer_scene", &Session::nth_mixer_scene)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::MixerScene>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::SessionPlaylists>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::SessionPlaylists>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::SessionPlaylists>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::SessionPlaylists>; T = std::shared_ptr<ARDOUR::SessionPlaylists>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SessionPlaylists>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::SessionPlaylists>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:331:32:   required from 'static int luabridge::CFunc::CallConstMember<MemFnPtr, ReturnType>::f(lua_State*) [with MemFnPtr = std::shared_ptr<ARDOUR::SessionPlaylists> (ARDOUR::Session::*)() const; ReturnType = std::shared_ptr<ARDOUR::SessionPlaylists>; lua_State = lua_State]'
  331 |       Stack <ReturnType>::push (L, FuncTraits <MemFnPtr>::call (t, fnptr, args));
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:982:28:   required from 'static void luabridge::CFunc::CallMemberFunctionHelper<MemFnPtr, isConst>::add(lua_State*, const char*, MemFnPtr) [with MemFnPtr = std::shared_ptr<ARDOUR::SessionPlaylists> (ARDOUR::Session::*)() const; bool isConst = true; lua_State = lua_State]'
  982 |       lua_pushcclosure (L, &CallConstMember <MemFnPtr>::f, 1);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:982:95:   required from 'luabridge::Namespace::Class<T>& luabridge::Namespace::Class<T>::addFunction(const char*, MemFn) [with MemFn = std::shared_ptr<ARDOUR::SessionPlaylists> (ARDOUR::Session::*)() const; T = ARDOUR::Session]'
  982 |       CFunc::CallMemberFunctionHelper <MemFn, FuncTraits <MemFn>::isConstMemberFunction>::add (L, name, mf);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/ardour/luabindings.cc:3125:16:   required from here
 3030 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3031 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 3032 |                 .beginClass <Session> ("Session")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3033 |                 .addFunction ("scripts_changed", &Session::scripts_changed) // used internally
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3034 |                 .addFunction ("engine_speed", &Session::engine_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3035 |                 .addFunction ("actual_speed", &Session::actual_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3036 |                 .addFunction ("transport_speed", &Session::transport_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3037 |                 .addFunction ("transport_stopped", &Session::transport_stopped)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3038 |                 .addFunction ("transport_stopped_or_stopping", &Session::transport_stopped_or_stopping)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3039 |                 .addFunction ("transport_state_rolling", &Session::transport_state_rolling)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3040 |                 .addFunction ("transport_rolling", &Session::transport_rolling)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3041 |                 .addFunction ("transport_will_roll_forwards", &Session::transport_will_roll_forwards)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3042 |                 .addFunction ("request_transport_speed", &Session::request_transport_speed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3043 |                 .addFunction ("transport_sample", &Session::transport_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3044 |                 .addFunction ("sample_rate", &Session::sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3045 |                 .addFunction ("nominal_sample_rate", &Session::nominal_sample_rate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3046 |                 .addFunction ("samples_per_timecode_frame", &Session::samples_per_timecode_frame)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3047 |                 .addFunction ("timecode_frames_per_hour", &Session::timecode_frames_per_hour)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3048 |                 .addFunction ("timecode_frames_per_second", &Session::timecode_frames_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3049 |                 .addFunction ("timecode_drop_frames", &Session::timecode_drop_frames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3050 |                 .addFunction ("request_locate", &Session::request_locate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3051 |                 .addFunction ("request_roll", &Session::request_roll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3052 |                 .addFunction ("request_stop", &Session::request_stop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3053 |                 .addFunction ("request_play_loop", &Session::request_play_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3054 |                 .addFunction ("request_bounded_roll", &Session::request_bounded_roll)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3055 |                 .addFunction ("preroll_samples", &Session::preroll_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3056 |                 .addFunction ("request_preroll_record_trim", &Session::request_preroll_record_trim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3057 |                 .addFunction ("request_count_in_record", &Session::request_count_in_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3058 |                 .addFunction ("get_play_loop", &Session::get_play_loop)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3059 |                 .addFunction ("get_xrun_count", &Session::get_xrun_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3060 |                 .addFunction ("reset_xrun_count", &Session::reset_xrun_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3061 |                 .addFunction ("last_transport_start", &Session::last_transport_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3062 |                 .addFunction ("goto_start", &Session::goto_start)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3063 |                 .addFunction ("goto_end", &Session::goto_end)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3064 |                 .addFunction ("current_start_sample", &Session::current_start_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3065 |                 .addFunction ("current_end_sample", &Session::current_end_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3066 |                 .addFunction ("actively_recording", &Session::actively_recording)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3067 |                 .addFunction ("new_audio_track", &Session::new_audio_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3068 |                 .addFunction ("new_audio_route", &Session::new_audio_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3069 |                 .addFunction ("new_midi_track", &Session::new_midi_track)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3070 |                 .addFunction ("new_midi_route", &Session::new_midi_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3071 | 
      |                               
 3072 |                 .addFunction ("add_master_bus", &Session::add_master_bus)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3073 | 
      |                               
 3074 |                 .addFunction ("get_routes", &Session::get_routes)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3075 |                 .addFunction ("get_tracks", &Session::get_tracks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3076 |                 .addFunction ("get_stripables", (StripableList (Session::*)() const)&Session::get_stripables)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3077 |                 .addFunction ("get_routelist", &Session::get_routelist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3078 |                 .addFunction ("plot_process_graph", &Session::plot_process_graph)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3079 | 
      |                               
 3080 |                 .addFunction ("bundles", &Session::bundles)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3081 | 
      |                               
 3082 |                 .addFunction ("apply_nth_mixer_scene", (bool (Session::*)(size_t))&Session::apply_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3083 |                 .addFunction ("apply_nth_mixer_scene_to", (bool (Session::*)(size_t, RouteList const&))&Session::apply_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3084 |                 .addFunction ("store_nth_mixer_scene", &Session::store_nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3085 |                 .addFunction ("nth_mixer_scene_valid", &Session::nth_mixer_scene_valid)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3086 |                 .addFunction ("nth_mixer_scene", &Session::nth_mixer_scene)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3087 | 
      |                               
 3088 |                 .addFunction ("name", &Session::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3089 |                 .addFunction ("path", &Session::path)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3090 |                 .addFunction ("record_status", &Session::record_status)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3091 |                 .addFunction ("maybe_enable_record", &Session::maybe_enable_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3092 |                 .addFunction ("disable_record", &Session::disable_record)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3093 |                 .addFunction ("route_by_id", &Session::route_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3094 |                 .addFunction ("route_by_name", &Session::route_by_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3095 |                 .addFunction ("stripable_by_id", &Session::stripable_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3096 |                 .addFunction ("get_remote_nth_stripable", &Session::get_remote_nth_stripable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3097 |                 .addFunction ("get_remote_nth_route", &Session::get_remote_nth_route)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3098 |                 .addFunction ("route_by_selected_count", &Session::route_by_selected_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3099 |                 .addFunction ("source_by_id", &Session::source_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3100 |                 .addFunction ("controllable_by_id", &Session::controllable_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3101 |                 .addFunction ("processor_by_id", &Session::processor_by_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3102 |                 .addFunction ("snap_name", &Session::snap_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3103 |                 .addFunction ("monitor_out", &Session::monitor_out)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3104 |                 .addFunction ("master_out", &Session::master_out)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3105 |                 .addFunction ("master_volume", &Session::master_volume)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3106 |                 .addFunction ("surround_master", &Session::surround_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3107 |                 .addFunction ("add_internal_send", (void (Session::*)(std::shared_ptr<Route>, std::shared_ptr<Processor>, std::shared_ptr<Route>))&Session::add_internal_send)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3108 |                 .addFunction ("add_internal_sends", &Session::add_internal_sends)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3109 |                 .addFunction ("locations", &Session::locations)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3110 |                 .addFunction ("soloing", &Session::soloing)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3111 |                 .addFunction ("listening", &Session::listening)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3112 |                 .addFunction ("solo_isolated", &Session::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3113 |                 .addFunction ("cancel_all_solo", &Session::cancel_all_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3114 |                 .addFunction ("clear_all_solo_state", &Session::clear_all_solo_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3115 |                 .addFunction ("set_controls", &Session::set_controls)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3116 |                 .addFunction ("set_control", &Session::set_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3117 |                 .addFunction ("set_exclusive_input_active", &Session::set_exclusive_input_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3118 |                 .addFunction ("begin_reversible_command", (void (Session::*)(const std::string&))&Session::begin_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3119 |                 .addFunction ("commit_reversible_command", &Session::commit_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3120 |                 .addFunction ("abort_reversible_command", &Session::abort_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3121 |                 .addFunction ("collected_undo_commands", &Session::collected_undo_commands)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3122 |                 .addFunction ("abort_empty_reversible_command", &Session::abort_empty_reversible_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3123 |                 .addFunction ("add_command", &Session::add_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3124 |                 .addFunction ("add_stateful_diff_command", &Session::add_stateful_diff_command)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3125 |                 .addFunction ("playlists", &Session::playlists)
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::SessionPlaylists>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Evoral::Event<long int>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Evoral::Event<long int>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Evoral::Event<long int>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = Evoral::Event<long int>; T = Evoral::Event<long int>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = Evoral::Event<long int>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = Evoral::Event<long int>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/LuaRef.h:181:23:   required from 'luabridge::LuaRef::Proxy& luabridge::LuaRef::Proxy::operator=(T) [with T = Evoral::Event<long int>]'
  181 |       Stack <T>::push (m_L, v);
      |       ~~~~~~~~~~~~~~~~^~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1340:16:   required from 'static int luabridge::CFunc::listToTableHelper(lua_State*, const C*) [with T = const Evoral::Event<long int>; C = ARDOUR::MidiBuffer; lua_State = lua_State]'
 1340 |       v[index] = (*iter);
../libs/lua/LuaBridge/detail/CFunctions.h:1351:36:   required from 'static int luabridge::CFunc::listToTable(lua_State*) [with T = const Evoral::Event<long int>; C = ARDOUR::MidiBuffer; lua_State = lua_State]'
 1351 |     return listToTableHelper<T, C> (L, t);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:3413:20:   required from here
 3391 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3392 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 3393 | 
      |                                   
 3394 |                 .beginClass <AudioBuffer> ("AudioBuffer")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3395 |                 .addEqualCheck ()
      |                 ~~~~~~~~~~~~~~~~~ 
 3396 |                 .addFunction ("data", (Sample*(AudioBuffer::*)(samplecnt_t))&AudioBuffer::data)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3397 |                 .addFunction ("silence", &AudioBuffer::silence)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3398 |                 .addFunction ("apply_gain", &AudioBuffer::apply_gain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3399 |                 .addFunction ("check_silence", &AudioBuffer::check_silence)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3400 |                 .addFunction ("read_from", (void (AudioBuffer::*)(const Sample*, samplecnt_t, samplecnt_t, samplecnt_t))&AudioBuffer::read_from)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3401 |                 .endClass()
      |                 ~~~~~~~~~~~       
 3402 | 
      |                                   
 3403 |                 .beginClass <MidiBuffer> ("MidiBuffer")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3404 |                 .addEqualCheck ()
      |                 ~~~~~~~~~~~~~~~~~ 
 3405 |                 .addFunction ("silence", &MidiBuffer::silence)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3406 |                 .addFunction ("size", &MidiBuffer::size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3407 |                 .addFunction ("empty", &MidiBuffer::empty)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3408 |                 .addFunction ("resize", &MidiBuffer::resize)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3409 |                 .addFunction ("copy", (void (MidiBuffer::*)(MidiBuffer const * const))&MidiBuffer::copy)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3410 |                 .addFunction ("push_event", (bool (MidiBuffer::*)(const Evoral::Event<samplepos_t>&))&MidiBuffer::push_back)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3411 |                 .addFunction ("push_back", (bool (MidiBuffer::*)(samplepos_t, Evoral::EventType, size_t, const uint8_t*))&MidiBuffer::push_back)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3412 |                 // TODO iterators..
      |                 ~~~~~~~~~~~~~~~~~~~
 3413 |                 .addExtCFunction ("table", &luabridge::CFunc::listToTable<const Evoral::Event<samplepos_t>, MidiBuffer>)
      |                 ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Evoral::Event<long int>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<ARDOUR::Bundle>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<ARDOUR::Bundle>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<ARDOUR::Bundle>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<ARDOUR::Bundle>; T = std::shared_ptr<ARDOUR::Bundle>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Bundle>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<ARDOUR::Bundle>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1289:21:   required from 'static int luabridge::CFunc::listIterIter(lua_State*) [with T = std::shared_ptr<ARDOUR::Bundle>; C = const std::vector<std::shared_ptr<ARDOUR::Bundle> >; lua_State = lua_State]'
 1289 |     Stack <T>::push (L, **iter);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1302:22:   required from 'static int luabridge::CFunc::listIterHelper(lua_State*, const C*) [with T = std::shared_ptr<ARDOUR::Bundle>; C = const std::vector<std::shared_ptr<ARDOUR::Bundle> >; lua_State = lua_State]'
 1302 |     lua_pushcclosure (L, listIterIter<T, C>, 2);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1318:33:   required from 'static int luabridge::CFunc::ptrListIter(lua_State*) [with T = std::shared_ptr<ARDOUR::Bundle>; C = const std::vector<std::shared_ptr<ARDOUR::Bundle> >; lua_State = lua_State]'
 1318 |     return listIterHelper<T, C> (L, t->get());
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2156:24:   required from 'luabridge::Namespace::Class<std::shared_ptr<const std::vector<T> > > luabridge::Namespace::beginPtrConstStdVector(const char*) [with T = std::shared_ptr<ARDOUR::Bundle>]'
 2152 |     return beginClass<std::shared_ptr<LT> > (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |       .addPtrFunction ("empty", (bool (LT::*)()const)&LT::empty)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2154 |       .addPtrFunction ("size", (T_SIZE (LT::*)()const)&LT::size)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |       .addPtrFunction ("at", (T_REF (LT::*)(T_SIZE))&LT::at)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |       .addExtCFunction ("iter", &CFunc::ptrListIter<T, LT>)
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2280:54:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2001 | 
      |                                                                     
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                    
 2010 | 
      |                                                                     
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2038 | 
      |                                                                     
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2043 | 
      |                                                                     
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2072 | 
      |                                                                     
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2080 | 
      |                                                                     
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2089 | 
      |                                                                     
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2098 | 
      |                                                                     
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2104 | 
      |                                                                     
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2122 | 
      |                                                                     
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2133 | 
      |                                                                     
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2138 | 
      |                                                                     
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2141 | 
      |                                                                     
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2145 | 
      |                                                                     
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2151 | 
      |                                                                     
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2158 | 
      |                                                                     
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2163 | 
      |                                                                     
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2167 | 
      |                                                                     
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2172 | 
      |                                                                     
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2179 | 
      |                                                                     
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2208 | 
      |                                                                     
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2211 | 
      |                                                                     
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2214 | 
      |                                                                     
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2218 | 
      |                                                                     
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2221 | 
      |                                                                     
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2224 | 
      |                                                                     
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2227 | 
      |                                                                     
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                              
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2235 | 
      |                                                                     
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2240 | 
      |                                                                     
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2244 | 
      |                                                                     
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2247 | 
      |                                                                     
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2251 | 
      |                                                                     
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2255 | 
      |                                                                     
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2259 | 
      |                                                                     
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2263 | 
      |                                                                     
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2267 | 
      |                                                                     
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2272 | 
      |                                                                     
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                        
 2278 | 
      |                                                                     
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<ARDOUR::Bundle>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::weak_ptr<ARDOUR::Route>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::weak_ptr<ARDOUR::Route>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::weak_ptr<ARDOUR::Route>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::weak_ptr<ARDOUR::Route>; T = std::weak_ptr<ARDOUR::Route>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::weak_ptr<ARDOUR::Route>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::weak_ptr<ARDOUR::Route>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1289:21:   required from 'static int luabridge::CFunc::listIterIter(lua_State*) [with T = std::weak_ptr<ARDOUR::Route>; C = std::__cxx11::list<std::weak_ptr<ARDOUR::Route> >; lua_State = lua_State]'
 1289 |     Stack <T>::push (L, **iter);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1302:22:   required from 'static int luabridge::CFunc::listIterHelper(lua_State*, const C*) [with T = std::weak_ptr<ARDOUR::Route>; C = std::__cxx11::list<std::weak_ptr<ARDOUR::Route> >; lua_State = lua_State]'
 1302 |     lua_pushcclosure (L, listIterIter<T, C>, 2);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1310:33:   required from 'static int luabridge::CFunc::listIter(lua_State*) [with T = std::weak_ptr<ARDOUR::Route>; C = std::__cxx11::list<std::weak_ptr<ARDOUR::Route> >; lua_State = lua_State]'
 1310 |     return listIterHelper<T, C> (L, t);
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2015:24:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::weak_ptr<ARDOUR::Route>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~~~
 2010 |       .addFunction ("empty", static_cast<bool (LT::*)() const>(&LT::empty))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2011 |       .addFunction ("size", static_cast<T_SIZE (LT::*)() const>(&LT::size))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |       .addFunction ("reverse", static_cast<void (LT::*)()>(&LT::reverse))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |       .addFunction ("front", static_cast<T& (LT::*)()>(&LT::front))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |       .addFunction ("back", static_cast<T& (LT::*)()>(&LT::back))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |       .addExtCFunction ("iter", &CFunc::listIter<T, LT>)
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2290:46:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2001 | 
      |                                                             
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                            
 2010 | 
      |                                                             
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2038 | 
      |                                                             
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2043 | 
      |                                                             
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2072 | 
      |                                                             
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2080 | 
      |                                                             
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2089 | 
      |                                                             
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2098 | 
      |                                                             
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2104 | 
      |                                                             
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2122 | 
      |                                                             
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2133 | 
      |                                                             
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2138 | 
      |                                                             
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2141 | 
      |                                                             
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2145 | 
      |                                                             
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2151 | 
      |                                                             
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2158 | 
      |                                                             
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2163 | 
      |                                                             
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2167 | 
      |                                                             
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2172 | 
      |                                                             
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2179 | 
      |                                                             
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2208 | 
      |                                                             
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2211 | 
      |                                                             
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2214 | 
      |                                                             
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2218 | 
      |                                                             
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2221 | 
      |                                                             
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2224 | 
      |                                                             
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2227 | 
      |                                                             
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                      
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2235 | 
      |                                                             
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2240 | 
      |                                                             
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2244 | 
      |                                                             
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2247 | 
      |                                                             
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2251 | 
      |                                                             
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2255 | 
      |                                                             
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2259 | 
      |                                                             
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2263 | 
      |                                                             
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2267 | 
      |                                                             
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2272 | 
      |                                                             
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2278 | 
      |                                                             
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2283 | 
      |                                                             
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                
 2288 | 
      |                                                             
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::weak_ptr<ARDOUR::Route>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::weak_ptr<ARDOUR::AudioSource>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::weak_ptr<ARDOUR::AudioSource>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::weak_ptr<ARDOUR::AudioSource>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::weak_ptr<ARDOUR::AudioSource>; T = std::weak_ptr<ARDOUR::AudioSource>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::weak_ptr<ARDOUR::AudioSource>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::weak_ptr<ARDOUR::AudioSource>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1289:21:   required from 'static int luabridge::CFunc::listIterIter(lua_State*) [with T = std::weak_ptr<ARDOUR::AudioSource>; C = std::__cxx11::list<std::weak_ptr<ARDOUR::AudioSource>, std::allocator<std::weak_ptr<ARDOUR::AudioSource> > >; lua_State = lua_State]'
 1289 |     Stack <T>::push (L, **iter);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1302:22:   required from 'static int luabridge::CFunc::listIterHelper(lua_State*, const C*) [with T = std::weak_ptr<ARDOUR::AudioSource>; C = std::__cxx11::list<std::weak_ptr<ARDOUR::AudioSource>, std::allocator<std::weak_ptr<ARDOUR::AudioSource> > >; lua_State = lua_State]'
 1302 |     lua_pushcclosure (L, listIterIter<T, C>, 2);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1310:33:   required from 'static int luabridge::CFunc::listIter(lua_State*) [with T = std::weak_ptr<ARDOUR::AudioSource>; C = std::__cxx11::list<std::weak_ptr<ARDOUR::AudioSource>, std::allocator<std::weak_ptr<ARDOUR::AudioSource> > >; lua_State = lua_State]'
 1310 |     return listIterHelper<T, C> (L, t);
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2015:24:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::weak_ptr<ARDOUR::AudioSource>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~~~
 2010 |       .addFunction ("empty", static_cast<bool (LT::*)() const>(&LT::empty))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2011 |       .addFunction ("size", static_cast<T_SIZE (LT::*)() const>(&LT::size))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |       .addFunction ("reverse", static_cast<void (LT::*)()>(&LT::reverse))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |       .addFunction ("front", static_cast<T& (LT::*)()>(&LT::front))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |       .addFunction ("back", static_cast<T& (LT::*)()>(&LT::back))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |       .addExtCFunction ("iter", &CFunc::listIter<T, LT>)
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2310:52:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2001 | 
      |                                                                   
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                  
 2010 | 
      |                                                                   
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2038 | 
      |                                                                   
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2043 | 
      |                                                                   
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2072 | 
      |                                                                   
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2080 | 
      |                                                                   
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2089 | 
      |                                                                   
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2098 | 
      |                                                                   
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2104 | 
      |                                                                   
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2122 | 
      |                                                                   
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2133 | 
      |                                                                   
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2138 | 
      |                                                                   
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2141 | 
      |                                                                   
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2145 | 
      |                                                                   
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2151 | 
      |                                                                   
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2158 | 
      |                                                                   
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2163 | 
      |                                                                   
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2167 | 
      |                                                                   
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2172 | 
      |                                                                   
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2179 | 
      |                                                                   
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2208 | 
      |                                                                   
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2211 | 
      |                                                                   
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2214 | 
      |                                                                   
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2218 | 
      |                                                                   
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2221 | 
      |                                                                   
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2224 | 
      |                                                                   
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2227 | 
      |                                                                   
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                            
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2235 | 
      |                                                                   
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2240 | 
      |                                                                   
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2244 | 
      |                                                                   
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2247 | 
      |                                                                   
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2251 | 
      |                                                                   
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2255 | 
      |                                                                   
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2259 | 
      |                                                                   
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2263 | 
      |                                                                   
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2267 | 
      |                                                                   
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2272 | 
      |                                                                   
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2278 | 
      |                                                                   
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2283 | 
      |                                                                   
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2288 | 
      |                                                                   
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2292 | 
      |                                                                   
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2296 | 
      |                                                                   
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2300 | 
      |                                                                   
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2304 | 
      |                                                                   
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 2308 | 
      |                                                                   
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::weak_ptr<ARDOUR::AudioSource>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::weak_ptr<ARDOUR::Source>]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::weak_ptr<ARDOUR::Source>]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::weak_ptr<ARDOUR::Source>; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::weak_ptr<ARDOUR::Source>; T = std::weak_ptr<ARDOUR::Source>; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::weak_ptr<ARDOUR::Source>; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::weak_ptr<ARDOUR::Source>; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1289:21:   required from 'static int luabridge::CFunc::listIterIter(lua_State*) [with T = std::weak_ptr<ARDOUR::Source>; C = std::__cxx11::list<std::weak_ptr<ARDOUR::Source>, std::allocator<std::weak_ptr<ARDOUR::Source> > >; lua_State = lua_State]'
 1289 |     Stack <T>::push (L, **iter);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1302:22:   required from 'static int luabridge::CFunc::listIterHelper(lua_State*, const C*) [with T = std::weak_ptr<ARDOUR::Source>; C = std::__cxx11::list<std::weak_ptr<ARDOUR::Source>, std::allocator<std::weak_ptr<ARDOUR::Source> > >; lua_State = lua_State]'
 1302 |     lua_pushcclosure (L, listIterIter<T, C>, 2);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1310:33:   required from 'static int luabridge::CFunc::listIter(lua_State*) [with T = std::weak_ptr<ARDOUR::Source>; C = std::__cxx11::list<std::weak_ptr<ARDOUR::Source>, std::allocator<std::weak_ptr<ARDOUR::Source> > >; lua_State = lua_State]'
 1310 |     return listIterHelper<T, C> (L, t);
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2015:24:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::weak_ptr<ARDOUR::Source>]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~~~
 2010 |       .addFunction ("empty", static_cast<bool (LT::*)() const>(&LT::empty))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2011 |       .addFunction ("size", static_cast<T_SIZE (LT::*)() const>(&LT::size))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |       .addFunction ("reverse", static_cast<void (LT::*)()>(&LT::reverse))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |       .addFunction ("front", static_cast<T& (LT::*)()>(&LT::front))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |       .addFunction ("back", static_cast<T& (LT::*)()>(&LT::back))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |       .addExtCFunction ("iter", &CFunc::listIter<T, LT>)
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/ardour/luabindings.cc:2392:47:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2001 | 
      |                                                              
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                             
 2010 | 
      |                                                              
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2038 | 
      |                                                              
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2043 | 
      |                                                              
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2072 | 
      |                                                              
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2080 | 
      |                                                              
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2089 | 
      |                                                              
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2098 | 
      |                                                              
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2104 | 
      |                                                              
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2122 | 
      |                                                              
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2133 | 
      |                                                              
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2138 | 
      |                                                              
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2141 | 
      |                                                              
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2145 | 
      |                                                              
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2151 | 
      |                                                              
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2158 | 
      |                                                              
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2163 | 
      |                                                              
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2167 | 
      |                                                              
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2172 | 
      |                                                              
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2179 | 
      |                                                              
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2208 | 
      |                                                              
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2211 | 
      |                                                              
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2214 | 
      |                                                              
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2218 | 
      |                                                              
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2221 | 
      |                                                              
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2224 | 
      |                                                              
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2227 | 
      |                                                              
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                       
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2235 | 
      |                                                              
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2240 | 
      |                                                              
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2244 | 
      |                                                              
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2247 | 
      |                                                              
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2251 | 
      |                                                              
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2255 | 
      |                                                              
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2259 | 
      |                                                              
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2263 | 
      |                                                              
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2267 | 
      |                                                              
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2272 | 
      |                                                              
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2278 | 
      |                                                              
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2283 | 
      |                                                              
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2288 | 
      |                                                              
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2292 | 
      |                                                              
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2296 | 
      |                                                              
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2300 | 
      |                                                              
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2304 | 
      |                                                              
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2308 | 
      |                                                              
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2312 | 
      |                                                              
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2316 | 
      |                                                              
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2320 | 
      |                                                              
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2324 | 
      |                                                              
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2328 | 
      |                                                              
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2332 | 
      |                                                              
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2338 | 
      |                                                              
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2342 | 
      |                                                              
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2346 | 
      |                                                              
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2350 | 
      |                                                              
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2354 | 
      |                                                              
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2357 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2358 | 
      |                                                              
 2359 |                 .beginConstStdCPtrList <Location> ("LocationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2360 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2361 | 
      |                                                              
 2362 |                 .beginConstStdVector <Evoral::Parameter> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2363 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2364 | 
      |                                                              
 2365 |                 .beginStdList <std::shared_ptr<AutomationControl> > ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2366 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2367 | 
      |                                                              
 2368 |                 .beginPtrStdList <std::shared_ptr<AutomationControl> > ("ControlListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2369 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <AutomationControl> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2370 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2371 | 
      |                                                              
 2372 |                 .beginStdList <std::shared_ptr<Evoral::Note<Temporal::Beats> > > ("NotePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2373 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2374 | 
      |                                                              
 2375 |                 .beginStdList <std::shared_ptr<Evoral::Event<Temporal::Beats> > > ("EventPtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2376 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2377 | 
      |                                                              
 2378 |                 .beginStdList <std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > > ("PatchChangePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2379 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2380 | 
      |                                                              
 2381 |                 .beginConstStdCPtrList <Evoral::ControlEvent> ("EventList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2382 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2383 | 
      |                                                              
 2384 | #if 0  // depends on Evoal:: Note, Beats see note_fixer.h
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2385 |         // typedef Evoral::Note<Temporal::Beats> Note
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2386 |         // std::set< std::weak_ptr<Note> >
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2387 |                 .beginStdSet <std::weak_ptr<Note> > ("WeakNoteSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2388 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                 
 2389 | #endif
      | ~~~~~~                                                       
 2390 | 
      |                                                              
 2391 |         // std::list<std::weak_ptr<Source> >
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2392 |                 .beginConstStdList <std::weak_ptr<Source> > ("WeakSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::weak_ptr<ARDOUR::Source>*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = Temporal::TempoMapPoint]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = Temporal::TempoMapPoint]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = Temporal::TempoMapPoint; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = Temporal::TempoMapPoint; T = Temporal::TempoMapPoint; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = Temporal::TempoMapPoint; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = Temporal::TempoMapPoint; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1289:21:   required from 'static int luabridge::CFunc::listIterIter(lua_State*) [with T = Temporal::TempoMapPoint; C = std::vector<Temporal::TempoMapPoint>; lua_State = lua_State]'
 1289 |     Stack <T>::push (L, **iter);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1302:22:   required from 'static int luabridge::CFunc::listIterHelper(lua_State*, const C*) [with T = Temporal::TempoMapPoint; C = std::vector<Temporal::TempoMapPoint>; lua_State = lua_State]'
 1302 |     lua_pushcclosure (L, listIterIter<T, C>, 2);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1310:33:   required from 'static int luabridge::CFunc::listIter(lua_State*) [with T = Temporal::TempoMapPoint; C = std::vector<Temporal::TempoMapPoint>; lua_State = lua_State]'
 1310 |     return listIterHelper<T, C> (L, t);
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2087:24:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginConstStdVector(const char*) [with T = Temporal::TempoMapPoint]'
 2082 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2083 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~~~
 2084 |       .addFunction ("empty", (bool (LT::*)()const)&LT::empty)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |       .addFunction ("size", (T_SIZE (LT::*)()const)&LT::size)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |       .addFunction ("at", (T_REF (LT::*)(T_SIZE))&LT::at)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |       .addExtCFunction ("iter", &CFunc::listIter<T, LT>)
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2096:35:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = Temporal::TempoMapPoint]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:831:45:   required from here
  635 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
  636 | 
      |                                                            
  637 |                 .beginNamespace ("Temporal")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  638 | 
      |                                                            
  639 |                 .addFunction ("superclock_ticks_per_second", Temporal::superclock_ticks_per_second)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  640 |                 .addConst ("ticks_per_beat", Temporal::ticks_per_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  641 | 
      |                                                            
  642 |                 .beginClass <Temporal::ratio_t> ("ratio")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  643 |                 .addConstructor <void (*) (int64_t, int64_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  644 |                 .addFunction ("is_unity", &Temporal::ratio_t::is_unity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  645 |                 .addFunction ("is_zero", &Temporal::ratio_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  646 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  647 | 
      |                                                            
  648 |                 .beginClass <Temporal::Beats> ("Beats")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  649 |                 .addConstructor <void (*) (int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  650 |                 .addOperator ("__add", CPPOPERATOR(Temporal::Beats, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  651 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::Beats, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  652 |                 .addOperator ("__mul", CPPOPERATOR(Temporal::Beats, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  653 |                 .addOperator ("__div", CPPOPERATOR(Temporal::Beats, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  654 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::Beats, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  655 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::Beats, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  656 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::Beats, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  657 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::Beats, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 .addStaticFunction ("from_double", &Temporal::Beats::from_double)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  659 |                 .addStaticFunction ("beats", &Temporal::Beats::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 .addStaticFunction ("ticks", &Temporal::Beats::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  661 |                 .addFunction ("get_beats", &Temporal::Beats::get_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  662 |                 .addFunction ("get_ticks", &Temporal::Beats::get_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  663 |                 .addFunction ("to_ticks", (int64_t(Temporal::Beats::*)() const)&Temporal::Beats::to_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  664 |                 .addFunction ("diff", &Temporal::Beats::diff)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  665 |                 .addFunction ("prev_beat", &Temporal::Beats::prev_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  666 |                 .addFunction ("next_beat", &Temporal::Beats::next_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  667 |                 .addFunction ("round_to_beat", &Temporal::Beats::round_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  668 |                 .addFunction ("round_up_to_beat", &Temporal::Beats::round_up_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  669 |                 .addFunction ("round_down_to_beat", &Temporal::Beats::round_down_to_beat)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  670 |                 .addFunction ("str", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  671 |                 .addMetamethod ("__tostring", &Temporal::Beats::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  672 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  673 | 
      |                                                            
  674 |                 .beginClass <Temporal::timepos_t> ("timepos_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  675 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  676 |                 .addOperator ("__add", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  677 |                 .addOperator ("__sub", CPPOPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, .earlier))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  678 |                 //.addOperator ("__mod", CPPOPERATOR2(Temporal::timepos_t, Temporal::timepos_t, Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |                 .addOperator ("__lt", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  680 |                 .addOperator ("__le", CPPCOMPERATORALT(Temporal::timepos_t, Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  681 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timepos_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  682 |                 .addStaticFunction ("zero", &Temporal::timepos_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  683 |                 .addStaticFunction ("max", &Temporal::timepos_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  684 |                 .addStaticFunction ("smallest_step", &Temporal::timepos_t::smallest_step)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                 .addStaticFunction ("from_ticks", &Temporal::timepos_t::from_ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  686 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
  687 |                 .addStaticFunction ("from_superclock", &Temporal::timepos_t::from_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  688 |                 .addFunction ("is_superclock", &Temporal::timepos_t::is_superclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  689 |                 .addFunction ("superclocks", &Temporal::timepos_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 | #endif
      | ~~~~~~                                                     
  691 |                 .addFunction ("is_positive", &Temporal::timepos_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  692 |                 .addFunction ("is_negative", &Temporal::timepos_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  693 |                 .addFunction ("is_zero", &Temporal::timepos_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  694 |                 .addFunction ("is_beats", &Temporal::timepos_t::is_beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  695 |                 .addFunction ("samples", &Temporal::timepos_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  696 |                 .addFunction ("time_domain", &Temporal::timepos_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697 |                 .addFunction ("ticks", &Temporal::timepos_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  698 |                 .addFunction ("beats", &Temporal::timepos_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  699 |                 .addFunction ("str", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  700 |                 .addFunction ("scale", &Temporal::timepos_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  701 |                 .addFunction ("distance", &Temporal::timepos_t::distance)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  702 |                 .addFunction ("increment", &Temporal::timepos_t::increment)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  703 |                 .addFunction ("decrement", &Temporal::timepos_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704 |                 .addMetamethod ("__tostring", &Temporal::timepos_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  705 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  706 | 
      |                                                            
  707 |                 .beginClass <timecnt_t> ("timecnt_t")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
  708 |                 .addConstructor <void (*) (Temporal::samplepos_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  709 |                 .addOperator ("__add", CPPOPERATOR(Temporal::timecnt_t, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::timecnt_t, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  711 |                 .addOperator ("__mod", CPPOPERATOR(Temporal::timecnt_t, %))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  712 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::timecnt_t, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  713 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::timecnt_t, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  714 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::timecnt_t, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  715 |                 .addStaticFunction ("zero", &Temporal::timecnt_t::zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  716 |                 .addStaticFunction ("max", (Temporal::timecnt_t const & (*)()) &Temporal::timecnt_t::max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717 |                 .addStaticFunction ("from_samples", static_cast<Temporal::timecnt_t(*)(Temporal::samplepos_t)>(&Temporal::timecnt_t::from_samples))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  718 |                 .addStaticFunction ("from_ticks", static_cast<Temporal::timecnt_t(*)(int64_t)>(&Temporal::timecnt_t::from_ticks))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  719 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
  720 |                 .addStaticFunction ("from_superclock", static_cast<Temporal::timecnt_t(*)(superclock_t)>(&Temporal::timecnt_t::from_superclock))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                 .addFunction ("superclocks", &Temporal::timecnt_t::superclocks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  722 | #endif
      | ~~~~~~                                                     
  723 |                 .addFunction ("magnitude", &Temporal::timecnt_t::magnitude)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  724 |                 .addFunction ("position", &Temporal::timecnt_t::position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  725 |                 .addFunction ("set_position", &Temporal::timecnt_t::set_position)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  726 |                 .addFunction ("is_positive", &Temporal::timecnt_t::is_positive)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  727 |                 .addFunction ("is_negative", &Temporal::timecnt_t::is_negative)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  728 |                 .addFunction ("is_zero", &Temporal::timecnt_t::is_zero)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  729 |                 .addFunction ("abs", &Temporal::timecnt_t::abs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |                 .addFunction ("time_domain", &Temporal::timecnt_t::time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |                 .addFunction ("set_time_domain", &Temporal::timecnt_t::set_time_domain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  732 |                 .addFunction ("samples", &Temporal::timecnt_t::samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  733 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  734 |                 .addFunction ("beats", &Temporal::timecnt_t::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  735 |                 .addFunction ("ticks", &Temporal::timecnt_t::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  736 |                 .addFunction ("str", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  737 |                 .addFunction ("scale", &Temporal::timecnt_t::scale)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  738 |                 .addFunction ("decrement", &Temporal::timecnt_t::decrement)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  739 |                 .addMetamethod ("__tostring", &Temporal::timecnt_t::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  740 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  741 | 
      |                                                            
  742 |                 .beginClass <Temporal::BBT_Time> ("BBT_TIME")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  743 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  744 |                 .addData ("bars", &Temporal::BBT_Time::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |                 .addData ("beats", &Temporal::BBT_Time::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |                 .addData ("ticks", &Temporal::BBT_Time::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  747 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Time, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  748 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Time, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  749 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Time, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  750 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  751 |                 .addMetamethod ("__tostring", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  752 |                 // .addStaticData ("ticks_per_beat", &Temporal::ticks_per_beat, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  753 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  754 | 
      |                                                            
  755 |                 .deriveClass <Temporal::BBT_Argument, Temporal::BBT_Time> ("BBT_Argument")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  756 |                 .addConstructor <void (*) (int32_t, int32_t, int32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  757 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  758 | 
      |                                                            
  759 |                 .beginClass <Temporal::BBT_Offset> ("BBT_Offset")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  760 |                 .addConstructor <void (*) (uint32_t, uint32_t, uint32_t)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  761 |                 .addData ("bars", &Temporal::BBT_Offset::bars)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  762 |                 .addData ("beats", &Temporal::BBT_Offset::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  763 |                 .addData ("ticks", &Temporal::BBT_Offset::ticks)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  764 |                 .addOperator ("__lt", CPPCOMPERATOR(Temporal::BBT_Offset, <))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  765 |                 .addOperator ("__le", CPPCOMPERATOR(Temporal::BBT_Offset, <=))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  766 |                 .addOperator ("__eq", CPPCOMPERATOR(Temporal::BBT_Offset, ==))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  767 |                 .addOperator ("__add", CPPOPERATOR(Temporal::BBT_Offset, +))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  768 |                 .addOperator ("__sub", CPPOPERATOR(Temporal::BBT_Offset, -))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  769 | #if 0
      | ~~~~~                                                      
  770 |                 .addOperator ("__mul", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, *))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  771 |                 .addOperator ("__div", CPPOPERATOR2(Temporal::BBT_Offset, Temporal::BBT_Offset, int, /))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  772 | #endif
      | ~~~~~~                                                     
  773 |                 .addFunction ("str", &Temporal::BBT_Time::str)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  774 |                 .addMetamethod ("__tostring", &Temporal::BBT_Offset::str) // XXX
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  775 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  776 | 
      |                                                            
  777 |                 .beginClass <Temporal::Tempo> ("Tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  778 |                 .addConstructor <void (*) (double, double, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  779 |                 .addFunction ("note_type", &Temporal::Tempo::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  780 |                 .addFunction ("note_types_per_minute",  (double (Temporal::Tempo::*)() const)&Temporal::Tempo::note_types_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  781 |                 .addFunction ("quarter_notes_per_minute", &Temporal::Tempo::quarter_notes_per_minute)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  782 |                 .addFunction ("samples_per_quarter_note", &Temporal::Tempo::samples_per_quarter_note)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  783 |                 .addFunction ("samples_per_note_type", &Temporal::Tempo::samples_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  784 | #ifdef WITH_SUPERCLOCK_BINDINGS
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
  785 |                 .addFunction ("superclocks_per_note_type", (superclock_t (Temporal::Tempo::*)() const)&Temporal::Tempo::superclocks_per_note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  786 | #endif
      | ~~~~~~                                                     
  787 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  788 | 
      |                                                            
  789 |                 .beginClass <Temporal::Meter> ("Meter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  790 |                 .addConstructor <void (*) (double, double)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  791 |                 .addFunction ("divisions_per_bar", &Temporal::Meter::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  792 |                 .addFunction ("note_value", &Temporal::Meter::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  793 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  794 | 
      |                                                            
  795 |                 .beginClass <Temporal::Point> ("Point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  796 |                 .addFunction ("sclock", &Temporal::Point::sclock)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  797 |                 .addFunction ("beats", &Temporal::Point::beats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  798 |                 .addFunction ("sample", &Temporal::Point::sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  799 |                 .addFunction ("bbt", &Temporal::Point::bbt)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800 |                 .addFunction ("time", &Temporal::Point::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  801 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  802 | 
      |                                                            
  803 |                 /* FIXME, direct access to parent class Temporal::Tempo fails here,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  804 |                  * even thought it is access via UserdataPtr at the same address */
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  805 |                 .deriveClass <Temporal::TempoPoint, Temporal::Tempo> ("TempoPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  806 |                 .addCast<Temporal::Tempo> ("to_tempo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  807 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  808 |                 .addFunction ("quarters_at_sample", &Temporal::TempoPoint::quarters_at_sample)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  809 |                 .addFunction ("time", &Temporal::TempoPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  810 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  811 | 
      |                                                            
  812 |                 .deriveClass <Temporal::MeterPoint, Temporal::Meter> ("MeterPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  813 |                 .addCast<Temporal::Point> ("to_point")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  814 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  815 | 
      |                                                            
  816 |                 .beginClass <Temporal::TempoMetric> ("TempoMetric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  817 |                 .addFunction ("tempo", &Temporal::TempoMetric::tempo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  818 |                 .addFunction ("meter", &Temporal::TempoMetric::meter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  819 |                 .addFunction ("sample_at", &Temporal::TempoMetric::sample_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  820 |                 .addFunction ("quarters_at", &Temporal::TempoMetric::quarters_at)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  821 |                 .addFunction ("note_type", &Temporal::TempoMetric::note_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  822 |                 .addFunction ("note_value", &Temporal::TempoMetric::note_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  823 |                 .addFunction ("divisions_per_bar", &Temporal::TempoMetric::divisions_per_bar)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  824 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  825 | 
      |                                                            
  826 |                 .deriveClass <Temporal::TempoMapPoint, Temporal::Point> ("TempoMapPoint")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  827 |                 .addCast<Temporal::TempoMetric> ("to_tempometric")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  828 |                 .addFunction ("time", &Temporal::TempoMapPoint::time)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  829 |                 .endClass ()
      |                 ~~~~~~~~~~~~                               
  830 | 
      |                                                            
  831 |                 .beginStdVector <Temporal::TempoMapPoint> ("TempoMapPoints")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'Temporal::TempoMapPoint*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = _VampHost::Vamp::PluginBase::ParameterDescriptor]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = _VampHost::Vamp::PluginBase::ParameterDescriptor]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = _VampHost::Vamp::PluginBase::ParameterDescriptor; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = _VampHost::Vamp::PluginBase::ParameterDescriptor; T = _VampHost::Vamp::PluginBase::ParameterDescriptor; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = _VampHost::Vamp::PluginBase::ParameterDescriptor; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = _VampHost::Vamp::PluginBase::ParameterDescriptor; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1289:21:   required from 'static int luabridge::CFunc::listIterIter(lua_State*) [with T = _VampHost::Vamp::PluginBase::ParameterDescriptor; C = std::vector<_VampHost::Vamp::PluginBase::ParameterDescriptor>; lua_State = lua_State]'
 1289 |     Stack <T>::push (L, **iter);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1302:22:   required from 'static int luabridge::CFunc::listIterHelper(lua_State*, const C*) [with T = _VampHost::Vamp::PluginBase::ParameterDescriptor; C = std::vector<_VampHost::Vamp::PluginBase::ParameterDescriptor>; lua_State = lua_State]'
 1302 |     lua_pushcclosure (L, listIterIter<T, C>, 2);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1310:33:   required from 'static int luabridge::CFunc::listIter(lua_State*) [with T = _VampHost::Vamp::PluginBase::ParameterDescriptor; C = std::vector<_VampHost::Vamp::PluginBase::ParameterDescriptor>; lua_State = lua_State]'
 1310 |     return listIterHelper<T, C> (L, t);
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2087:24:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginConstStdVector(const char*) [with T = _VampHost::Vamp::PluginBase::ParameterDescriptor]'
 2082 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2083 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~~~
 2084 |       .addFunction ("empty", (bool (LT::*)()const)&LT::empty)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |       .addFunction ("size", (T_SIZE (LT::*)()const)&LT::size)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |       .addFunction ("at", (T_REF (LT::*)(T_SIZE))&LT::at)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |       .addExtCFunction ("iter", &CFunc::listIter<T, LT>)
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2096:35:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = _VampHost::Vamp::PluginBase::ParameterDescriptor]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:1052:59:   required from here
 1008 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 1009 |                 .beginNamespace ("Vamp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                                 
 1010 | 
      |                                                                          
 1011 |                 .beginClass<Vamp::RealTime> ("RealTime")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1012 |                 .addConstructor <void (*) (int, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 1013 |                 .addData ("sec", &Vamp::RealTime::sec, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 1014 |                 .addData ("nsec", &Vamp::RealTime::nsec, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1015 |                 .addFunction ("usec", &Vamp::RealTime::usec)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1016 |                 .addFunction ("msec", &Vamp::RealTime::msec)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1017 |                 .addFunction ("toString", &Vamp::RealTime::toString)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1018 |                 .addStaticFunction ("realTime2Frame", &Vamp::RealTime::realTime2Frame)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1019 |                 .addStaticFunction ("frame2RealTime", &Vamp::RealTime::frame2RealTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1020 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                             
 1021 | 
      |                                                                          
 1022 |                 .beginClass<Vamp::PluginBase> ("PluginBase")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 1023 |                 .addFunction ("getIdentifier", &Vamp::PluginBase::getIdentifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1024 |                 .addFunction ("getName", &Vamp::PluginBase::getName)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1025 |                 .addFunction ("getDescription", &Vamp::PluginBase::getDescription)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1026 |                 .addFunction ("getMaker", &Vamp::PluginBase::getMaker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1027 |                 .addFunction ("getCopyright", &Vamp::PluginBase::getCopyright)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1028 |                 .addFunction ("getPluginVersion", &Vamp::PluginBase::getPluginVersion)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1029 |                 .addFunction ("getParameterDescriptors", &Vamp::PluginBase::getParameterDescriptors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1030 |                 .addFunction ("getParameter", &Vamp::PluginBase::getParameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1031 |                 .addFunction ("setParameter", &Vamp::PluginBase::setParameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1032 |                 .addFunction ("getPrograms", &Vamp::PluginBase::getPrograms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1033 |                 .addFunction ("getCurrentProgram", &Vamp::PluginBase::getCurrentProgram)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1034 |                 .addFunction ("selectProgram", &Vamp::PluginBase::selectProgram)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1035 |                 .addFunction ("getType", &Vamp::PluginBase::getType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1036 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                             
 1037 | 
      |                                                                          
 1038 |                 .beginNamespace ("PluginBase")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 1039 |                 .beginClass<Vamp::PluginBase::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1040 |                 .addData ("identifier", &Vamp::PluginBase::ParameterDescriptor::identifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1041 |                 .addData ("name", &Vamp::PluginBase::ParameterDescriptor::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1042 |                 .addData ("description", &Vamp::PluginBase::ParameterDescriptor::description)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1043 |                 .addData ("unit", &Vamp::PluginBase::ParameterDescriptor::unit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1044 |                 .addData ("minValue", &Vamp::PluginBase::ParameterDescriptor::minValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1045 |                 .addData ("maxValue", &Vamp::PluginBase::ParameterDescriptor::maxValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1046 |                 .addData ("defaultValue", &Vamp::PluginBase::ParameterDescriptor::defaultValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1047 |                 .addData ("isQuantized", &Vamp::PluginBase::ParameterDescriptor::isQuantized)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1048 |                 .addData ("quantizeStep", &Vamp::PluginBase::ParameterDescriptor::quantizeStep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1049 |                 .addData ("valueNames", &Vamp::PluginBase::ParameterDescriptor::valueNames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1050 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                             
 1051 | 
      |                                                                          
 1052 |                 .beginStdVector <Vamp::PluginBase::ParameterDescriptor> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to '_VampHost::Vamp::PluginBase::ParameterDescriptor*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = _VampHost::Vamp::Plugin::OutputDescriptor]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = _VampHost::Vamp::Plugin::OutputDescriptor]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = _VampHost::Vamp::Plugin::OutputDescriptor; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = _VampHost::Vamp::Plugin::OutputDescriptor; T = _VampHost::Vamp::Plugin::OutputDescriptor; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = _VampHost::Vamp::Plugin::OutputDescriptor; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = _VampHost::Vamp::Plugin::OutputDescriptor; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1289:21:   required from 'static int luabridge::CFunc::listIterIter(lua_State*) [with T = _VampHost::Vamp::Plugin::OutputDescriptor; C = std::vector<_VampHost::Vamp::Plugin::OutputDescriptor>; lua_State = lua_State]'
 1289 |     Stack <T>::push (L, **iter);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1302:22:   required from 'static int luabridge::CFunc::listIterHelper(lua_State*, const C*) [with T = _VampHost::Vamp::Plugin::OutputDescriptor; C = std::vector<_VampHost::Vamp::Plugin::OutputDescriptor>; lua_State = lua_State]'
 1302 |     lua_pushcclosure (L, listIterIter<T, C>, 2);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1310:33:   required from 'static int luabridge::CFunc::listIter(lua_State*) [with T = _VampHost::Vamp::Plugin::OutputDescriptor; C = std::vector<_VampHost::Vamp::Plugin::OutputDescriptor>; lua_State = lua_State]'
 1310 |     return listIterHelper<T, C> (L, t);
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2087:24:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginConstStdVector(const char*) [with T = _VampHost::Vamp::Plugin::OutputDescriptor]'
 2082 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2083 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~~~
 2084 |       .addFunction ("empty", (bool (LT::*)()const)&LT::empty)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |       .addFunction ("size", (T_SIZE (LT::*)()const)&LT::size)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |       .addFunction ("at", (T_REF (LT::*)(T_SIZE))&LT::at)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |       .addExtCFunction ("iter", &CFunc::listIter<T, LT>)
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2096:35:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = _VampHost::Vamp::Plugin::OutputDescriptor]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:1112:52:   required from here
 1008 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1009 |                 .beginNamespace ("Vamp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                          
 1010 | 
      |                                                                   
 1011 |                 .beginClass<Vamp::RealTime> ("RealTime")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1012 |                 .addConstructor <void (*) (int, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1013 |                 .addData ("sec", &Vamp::RealTime::sec, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1014 |                 .addData ("nsec", &Vamp::RealTime::nsec, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 1015 |                 .addFunction ("usec", &Vamp::RealTime::usec)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1016 |                 .addFunction ("msec", &Vamp::RealTime::msec)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1017 |                 .addFunction ("toString", &Vamp::RealTime::toString)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1018 |                 .addStaticFunction ("realTime2Frame", &Vamp::RealTime::realTime2Frame)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1019 |                 .addStaticFunction ("frame2RealTime", &Vamp::RealTime::frame2RealTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1020 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 1021 | 
      |                                                                   
 1022 |                 .beginClass<Vamp::PluginBase> ("PluginBase")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1023 |                 .addFunction ("getIdentifier", &Vamp::PluginBase::getIdentifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1024 |                 .addFunction ("getName", &Vamp::PluginBase::getName)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1025 |                 .addFunction ("getDescription", &Vamp::PluginBase::getDescription)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1026 |                 .addFunction ("getMaker", &Vamp::PluginBase::getMaker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1027 |                 .addFunction ("getCopyright", &Vamp::PluginBase::getCopyright)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1028 |                 .addFunction ("getPluginVersion", &Vamp::PluginBase::getPluginVersion)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1029 |                 .addFunction ("getParameterDescriptors", &Vamp::PluginBase::getParameterDescriptors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1030 |                 .addFunction ("getParameter", &Vamp::PluginBase::getParameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1031 |                 .addFunction ("setParameter", &Vamp::PluginBase::setParameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1032 |                 .addFunction ("getPrograms", &Vamp::PluginBase::getPrograms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1033 |                 .addFunction ("getCurrentProgram", &Vamp::PluginBase::getCurrentProgram)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1034 |                 .addFunction ("selectProgram", &Vamp::PluginBase::selectProgram)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1035 |                 .addFunction ("getType", &Vamp::PluginBase::getType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1036 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 1037 | 
      |                                                                   
 1038 |                 .beginNamespace ("PluginBase")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 1039 |                 .beginClass<Vamp::PluginBase::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1040 |                 .addData ("identifier", &Vamp::PluginBase::ParameterDescriptor::identifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1041 |                 .addData ("name", &Vamp::PluginBase::ParameterDescriptor::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1042 |                 .addData ("description", &Vamp::PluginBase::ParameterDescriptor::description)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1043 |                 .addData ("unit", &Vamp::PluginBase::ParameterDescriptor::unit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1044 |                 .addData ("minValue", &Vamp::PluginBase::ParameterDescriptor::minValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1045 |                 .addData ("maxValue", &Vamp::PluginBase::ParameterDescriptor::maxValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1046 |                 .addData ("defaultValue", &Vamp::PluginBase::ParameterDescriptor::defaultValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1047 |                 .addData ("isQuantized", &Vamp::PluginBase::ParameterDescriptor::isQuantized)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1048 |                 .addData ("quantizeStep", &Vamp::PluginBase::ParameterDescriptor::quantizeStep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1049 |                 .addData ("valueNames", &Vamp::PluginBase::ParameterDescriptor::valueNames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1050 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 1051 | 
      |                                                                   
 1052 |                 .beginStdVector <Vamp::PluginBase::ParameterDescriptor> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1053 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 1054 |                 .endNamespace () // Vamp::PluginBase
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1055 | 
      |                                                                   
 1056 |                 .deriveClass<Vamp::Plugin, Vamp::PluginBase> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1057 |                 //.addFunction ("process", &Vamp::Plugin::process) // unusable due to  float*const* -> LuaAPI::Vamp::process
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1058 |                 .addFunction ("initialise", &Vamp::Plugin::initialise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1059 |                 .addFunction ("reset", &Vamp::Plugin::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 1060 |                 .addFunction ("getInputDomain", &Vamp::Plugin::getInputDomain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1061 |                 .addFunction ("getPreferredBlockSize", &Vamp::Plugin::getPreferredBlockSize)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1062 |                 .addFunction ("getPreferredStepSize", &Vamp::Plugin::getPreferredStepSize)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1063 |                 .addFunction ("getMinChannelCount", &Vamp::Plugin::getMinChannelCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1064 |                 .addFunction ("getMaxChannelCount", &Vamp::Plugin::getMaxChannelCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1065 |                 .addFunction ("getOutputDescriptors", &Vamp::Plugin::getOutputDescriptors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1066 |                 .addFunction ("getRemainingFeatures", &Vamp::Plugin::getRemainingFeatures)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1067 |                 .addFunction ("getType", &Vamp::Plugin::getType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 1068 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 1069 | 
      |                                                                   
 1070 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 1071 |                 .beginClass<Vamp::Plugin::OutputDescriptor> ("OutputDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1072 |                 .addData ("identifier", &Vamp::Plugin::OutputDescriptor::identifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1073 |                 .addData ("description", &Vamp::Plugin::OutputDescriptor::description)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1074 |                 .addData ("unit", &Vamp::Plugin::OutputDescriptor::unit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1075 |                 .addData ("hasFixedBinCount", &Vamp::Plugin::OutputDescriptor::hasFixedBinCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1076 |                 .addData ("binCount", &Vamp::Plugin::OutputDescriptor::binCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1077 |                 .addData ("binNames", &Vamp::Plugin::OutputDescriptor::binNames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1078 |                 .addData ("hasKnownExtents", &Vamp::Plugin::OutputDescriptor::hasKnownExtents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1079 |                 .addData ("minValue", &Vamp::Plugin::OutputDescriptor::minValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1080 |                 .addData ("maxValue", &Vamp::Plugin::OutputDescriptor::maxValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1081 |                 .addData ("isQuantized", &Vamp::Plugin::OutputDescriptor::isQuantized)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1082 |                 .addData ("quantizeStep", &Vamp::Plugin::OutputDescriptor::quantizeStep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1083 |                 .addData ("sampleType", &Vamp::Plugin::OutputDescriptor::sampleType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1084 |                 .addData ("sampleRate", &Vamp::Plugin::OutputDescriptor::sampleRate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1085 |                 .addData ("hasDuration", &Vamp::Plugin::OutputDescriptor::hasDuration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1086 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 1087 | 
      |                                                                   
 1088 |                 /* Vamp::Plugin enums */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                          
 1089 |                 .beginNamespace ("InputDomain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 1090 |                 .addConst ("TimeDomain", Vamp::Plugin::InputDomain(Vamp::Plugin::TimeDomain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1091 |                 .addConst ("FrequencyDomain", Vamp::Plugin::InputDomain(Vamp::Plugin::FrequencyDomain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1092 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                  
 1093 | 
      |                                                                   
 1094 |                 /* Vamp::Plugin::OutputDescriptor enum */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 1095 |                 .beginNamespace ("OutputDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 1096 |                 .beginNamespace ("SampleType")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 1097 |                 .addConst ("OneSamplePerStep", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::OneSamplePerStep))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1098 |                 .addConst ("FixedSampleRate", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::FixedSampleRate))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1099 |                 .addConst ("VariableSampleRate", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::VariableSampleRate))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1100 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                  
 1101 |                 .endNamespace () /* Vamp::Plugin::OutputDescriptor */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1102 | 
      |                                                                   
 1103 |                 .beginClass<Vamp::Plugin::Feature> ("Feature")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 1104 |                 .addData ("hasTimestamp", &Vamp::Plugin::Feature::hasTimestamp, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1105 |                 .addData ("timestamp", &Vamp::Plugin::Feature::timestamp, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1106 |                 .addData ("hasDuration", &Vamp::Plugin::Feature::hasDuration, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1107 |                 .addData ("duration", &Vamp::Plugin::Feature::duration, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1108 |                 .addData ("values", &Vamp::Plugin::Feature::values, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |                 .addData ("label", &Vamp::Plugin::Feature::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1110 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                      
 1111 | 
      |                                                                   
 1112 |                 .beginStdVector <Vamp::Plugin::OutputDescriptor> ("OutputList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to '_VampHost::Vamp::Plugin::OutputDescriptor*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = _VampHost::Vamp::Plugin::Feature]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = _VampHost::Vamp::Plugin::Feature]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = _VampHost::Vamp::Plugin::Feature; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = _VampHost::Vamp::Plugin::Feature; T = _VampHost::Vamp::Plugin::Feature; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = _VampHost::Vamp::Plugin::Feature; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = _VampHost::Vamp::Plugin::Feature; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1289:21:   required from 'static int luabridge::CFunc::listIterIter(lua_State*) [with T = _VampHost::Vamp::Plugin::Feature; C = std::vector<_VampHost::Vamp::Plugin::Feature>; lua_State = lua_State]'
 1289 |     Stack <T>::push (L, **iter);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1302:22:   required from 'static int luabridge::CFunc::listIterHelper(lua_State*, const C*) [with T = _VampHost::Vamp::Plugin::Feature; C = std::vector<_VampHost::Vamp::Plugin::Feature>; lua_State = lua_State]'
 1302 |     lua_pushcclosure (L, listIterIter<T, C>, 2);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1310:33:   required from 'static int luabridge::CFunc::listIter(lua_State*) [with T = _VampHost::Vamp::Plugin::Feature; C = std::vector<_VampHost::Vamp::Plugin::Feature>; lua_State = lua_State]'
 1310 |     return listIterHelper<T, C> (L, t);
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2087:24:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginConstStdVector(const char*) [with T = _VampHost::Vamp::Plugin::Feature]'
 2082 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2083 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~~~
 2084 |       .addFunction ("empty", (bool (LT::*)()const)&LT::empty)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |       .addFunction ("size", (T_SIZE (LT::*)()const)&LT::size)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |       .addFunction ("at", (T_REF (LT::*)(T_SIZE))&LT::at)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |       .addExtCFunction ("iter", &CFunc::listIter<T, LT>)
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2096:35:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = _VampHost::Vamp::Plugin::Feature]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:1115:43:   required from here
 1008 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 1009 |                 .beginNamespace ("Vamp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                 
 1010 | 
      |                                                          
 1011 |                 .beginClass<Vamp::RealTime> ("RealTime")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1012 |                 .addConstructor <void (*) (int, int)> ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 1013 |                 .addData ("sec", &Vamp::RealTime::sec, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1014 |                 .addData ("nsec", &Vamp::RealTime::nsec, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1015 |                 .addFunction ("usec", &Vamp::RealTime::usec)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1016 |                 .addFunction ("msec", &Vamp::RealTime::msec)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1017 |                 .addFunction ("toString", &Vamp::RealTime::toString)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1018 |                 .addStaticFunction ("realTime2Frame", &Vamp::RealTime::realTime2Frame)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1019 |                 .addStaticFunction ("frame2RealTime", &Vamp::RealTime::frame2RealTime)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1020 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1021 | 
      |                                                          
 1022 |                 .beginClass<Vamp::PluginBase> ("PluginBase")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1023 |                 .addFunction ("getIdentifier", &Vamp::PluginBase::getIdentifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1024 |                 .addFunction ("getName", &Vamp::PluginBase::getName)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1025 |                 .addFunction ("getDescription", &Vamp::PluginBase::getDescription)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1026 |                 .addFunction ("getMaker", &Vamp::PluginBase::getMaker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1027 |                 .addFunction ("getCopyright", &Vamp::PluginBase::getCopyright)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1028 |                 .addFunction ("getPluginVersion", &Vamp::PluginBase::getPluginVersion)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1029 |                 .addFunction ("getParameterDescriptors", &Vamp::PluginBase::getParameterDescriptors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1030 |                 .addFunction ("getParameter", &Vamp::PluginBase::getParameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1031 |                 .addFunction ("setParameter", &Vamp::PluginBase::setParameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1032 |                 .addFunction ("getPrograms", &Vamp::PluginBase::getPrograms)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1033 |                 .addFunction ("getCurrentProgram", &Vamp::PluginBase::getCurrentProgram)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1034 |                 .addFunction ("selectProgram", &Vamp::PluginBase::selectProgram)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1035 |                 .addFunction ("getType", &Vamp::PluginBase::getType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1036 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1037 | 
      |                                                          
 1038 |                 .beginNamespace ("PluginBase")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1039 |                 .beginClass<Vamp::PluginBase::ParameterDescriptor> ("ParameterDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1040 |                 .addData ("identifier", &Vamp::PluginBase::ParameterDescriptor::identifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1041 |                 .addData ("name", &Vamp::PluginBase::ParameterDescriptor::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1042 |                 .addData ("description", &Vamp::PluginBase::ParameterDescriptor::description)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1043 |                 .addData ("unit", &Vamp::PluginBase::ParameterDescriptor::unit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1044 |                 .addData ("minValue", &Vamp::PluginBase::ParameterDescriptor::minValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1045 |                 .addData ("maxValue", &Vamp::PluginBase::ParameterDescriptor::maxValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1046 |                 .addData ("defaultValue", &Vamp::PluginBase::ParameterDescriptor::defaultValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1047 |                 .addData ("isQuantized", &Vamp::PluginBase::ParameterDescriptor::isQuantized)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1048 |                 .addData ("quantizeStep", &Vamp::PluginBase::ParameterDescriptor::quantizeStep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1049 |                 .addData ("valueNames", &Vamp::PluginBase::ParameterDescriptor::valueNames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1050 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1051 | 
      |                                                          
 1052 |                 .beginStdVector <Vamp::PluginBase::ParameterDescriptor> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1053 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1054 |                 .endNamespace () // Vamp::PluginBase
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1055 | 
      |                                                          
 1056 |                 .deriveClass<Vamp::Plugin, Vamp::PluginBase> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1057 |                 //.addFunction ("process", &Vamp::Plugin::process) // unusable due to  float*const* -> LuaAPI::Vamp::process
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1058 |                 .addFunction ("initialise", &Vamp::Plugin::initialise)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1059 |                 .addFunction ("reset", &Vamp::Plugin::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1060 |                 .addFunction ("getInputDomain", &Vamp::Plugin::getInputDomain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1061 |                 .addFunction ("getPreferredBlockSize", &Vamp::Plugin::getPreferredBlockSize)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1062 |                 .addFunction ("getPreferredStepSize", &Vamp::Plugin::getPreferredStepSize)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1063 |                 .addFunction ("getMinChannelCount", &Vamp::Plugin::getMinChannelCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1064 |                 .addFunction ("getMaxChannelCount", &Vamp::Plugin::getMaxChannelCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1065 |                 .addFunction ("getOutputDescriptors", &Vamp::Plugin::getOutputDescriptors)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1066 |                 .addFunction ("getRemainingFeatures", &Vamp::Plugin::getRemainingFeatures)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1067 |                 .addFunction ("getType", &Vamp::Plugin::getType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1068 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1069 | 
      |                                                          
 1070 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~               
 1071 |                 .beginClass<Vamp::Plugin::OutputDescriptor> ("OutputDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1072 |                 .addData ("identifier", &Vamp::Plugin::OutputDescriptor::identifier)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1073 |                 .addData ("description", &Vamp::Plugin::OutputDescriptor::description)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1074 |                 .addData ("unit", &Vamp::Plugin::OutputDescriptor::unit)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1075 |                 .addData ("hasFixedBinCount", &Vamp::Plugin::OutputDescriptor::hasFixedBinCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1076 |                 .addData ("binCount", &Vamp::Plugin::OutputDescriptor::binCount)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1077 |                 .addData ("binNames", &Vamp::Plugin::OutputDescriptor::binNames)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1078 |                 .addData ("hasKnownExtents", &Vamp::Plugin::OutputDescriptor::hasKnownExtents)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1079 |                 .addData ("minValue", &Vamp::Plugin::OutputDescriptor::minValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1080 |                 .addData ("maxValue", &Vamp::Plugin::OutputDescriptor::maxValue)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1081 |                 .addData ("isQuantized", &Vamp::Plugin::OutputDescriptor::isQuantized)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1082 |                 .addData ("quantizeStep", &Vamp::Plugin::OutputDescriptor::quantizeStep)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1083 |                 .addData ("sampleType", &Vamp::Plugin::OutputDescriptor::sampleType)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1084 |                 .addData ("sampleRate", &Vamp::Plugin::OutputDescriptor::sampleRate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1085 |                 .addData ("hasDuration", &Vamp::Plugin::OutputDescriptor::hasDuration)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1086 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1087 | 
      |                                                          
 1088 |                 /* Vamp::Plugin enums */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~                 
 1089 |                 .beginNamespace ("InputDomain")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 1090 |                 .addConst ("TimeDomain", Vamp::Plugin::InputDomain(Vamp::Plugin::TimeDomain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1091 |                 .addConst ("FrequencyDomain", Vamp::Plugin::InputDomain(Vamp::Plugin::FrequencyDomain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1092 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                         
 1093 | 
      |                                                          
 1094 |                 /* Vamp::Plugin::OutputDescriptor enum */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1095 |                 .beginNamespace ("OutputDescriptor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 1096 |                 .beginNamespace ("SampleType")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 1097 |                 .addConst ("OneSamplePerStep", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::OneSamplePerStep))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1098 |                 .addConst ("FixedSampleRate", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::FixedSampleRate))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1099 |                 .addConst ("VariableSampleRate", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::VariableSampleRate))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1100 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                         
 1101 |                 .endNamespace () /* Vamp::Plugin::OutputDescriptor */
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1102 | 
      |                                                          
 1103 |                 .beginClass<Vamp::Plugin::Feature> ("Feature")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1104 |                 .addData ("hasTimestamp", &Vamp::Plugin::Feature::hasTimestamp, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1105 |                 .addData ("timestamp", &Vamp::Plugin::Feature::timestamp, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1106 |                 .addData ("hasDuration", &Vamp::Plugin::Feature::hasDuration, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1107 |                 .addData ("duration", &Vamp::Plugin::Feature::duration, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1108 |                 .addData ("values", &Vamp::Plugin::Feature::values, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |                 .addData ("label", &Vamp::Plugin::Feature::label, false)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1110 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1111 | 
      |                                                          
 1112 |                 .beginStdVector <Vamp::Plugin::OutputDescriptor> ("OutputList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1113 |                 .endClass ()
      |                 ~~~~~~~~~~~~                             
 1114 | 
      |                                                          
 1115 |                 .beginStdVector <Vamp::Plugin::Feature> ("FeatureList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to '_VampHost::Vamp::Plugin::Feature*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<Evoral::Event<Temporal::Beats> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<Evoral::Event<Temporal::Beats> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<Evoral::Event<Temporal::Beats> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<Evoral::Event<Temporal::Beats> >; T = std::shared_ptr<Evoral::Event<Temporal::Beats> >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<Evoral::Event<Temporal::Beats> >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<Evoral::Event<Temporal::Beats> >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1289:21:   required from 'static int luabridge::CFunc::listIterIter(lua_State*) [with T = std::shared_ptr<Evoral::Event<Temporal::Beats> >; C = std::__cxx11::list<std::shared_ptr<Evoral::Event<Temporal::Beats> > >; lua_State = lua_State]'
 1289 |     Stack <T>::push (L, **iter);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1302:22:   required from 'static int luabridge::CFunc::listIterHelper(lua_State*, const C*) [with T = std::shared_ptr<Evoral::Event<Temporal::Beats> >; C = std::__cxx11::list<std::shared_ptr<Evoral::Event<Temporal::Beats> > >; lua_State = lua_State]'
 1302 |     lua_pushcclosure (L, listIterIter<T, C>, 2);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1310:33:   required from 'static int luabridge::CFunc::listIter(lua_State*) [with T = std::shared_ptr<Evoral::Event<Temporal::Beats> >; C = std::__cxx11::list<std::shared_ptr<Evoral::Event<Temporal::Beats> > >; lua_State = lua_State]'
 1310 |     return listIterHelper<T, C> (L, t);
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2015:24:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<Evoral::Event<Temporal::Beats> >]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~~~
 2010 |       .addFunction ("empty", static_cast<bool (LT::*)() const>(&LT::empty))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2011 |       .addFunction ("size", static_cast<T_SIZE (LT::*)() const>(&LT::size))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |       .addFunction ("reverse", static_cast<void (LT::*)()>(&LT::reverse))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |       .addFunction ("front", static_cast<T& (LT::*)()>(&LT::front))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |       .addFunction ("back", static_cast<T& (LT::*)()>(&LT::back))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |       .addExtCFunction ("iter", &CFunc::listIter<T, LT>)
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2024:33:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginStdList(const char*) [with T = std::shared_ptr<Evoral::Event<Temporal::Beats> >]'
 2024 |     return beginConstStdList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:2375:69:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                          
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                         
 2001 | 
      |                                                                                    
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                         
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                                   
 2010 | 
      |                                                                                    
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                   
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2038 | 
      |                                                                                    
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2043 | 
      |                                                                                    
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2072 | 
      |                                                                                    
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2080 | 
      |                                                                                    
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2089 | 
      |                                                                                    
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2098 | 
      |                                                                                    
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2104 | 
      |                                                                                    
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2122 | 
      |                                                                                    
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2133 | 
      |                                                                                    
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2138 | 
      |                                                                                    
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2141 | 
      |                                                                                    
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2145 | 
      |                                                                                    
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2151 | 
      |                                                                                    
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2158 | 
      |                                                                                    
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2163 | 
      |                                                                                    
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2167 | 
      |                                                                                    
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2172 | 
      |                                                                                    
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2179 | 
      |                                                                                    
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2208 | 
      |                                                                                    
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2211 | 
      |                                                                                    
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2214 | 
      |                                                                                    
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2218 | 
      |                                                                                    
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2221 | 
      |                                                                                    
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2224 | 
      |                                                                                    
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2227 | 
      |                                                                                    
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                             
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2235 | 
      |                                                                                    
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2240 | 
      |                                                                                    
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2244 | 
      |                                                                                    
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2247 | 
      |                                                                                    
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2251 | 
      |                                                                                    
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2255 | 
      |                                                                                    
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2259 | 
      |                                                                                    
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2263 | 
      |                                                                                    
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2267 | 
      |                                                                                    
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2272 | 
      |                                                                                    
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2278 | 
      |                                                                                    
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2283 | 
      |                                                                                    
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                     
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2288 | 
      |                                                                                    
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2292 | 
      |                                                                                    
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2296 | 
      |                                                                                    
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2300 | 
      |                                                                                    
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2304 | 
      |                                                                                    
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2308 | 
      |                                                                                    
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2312 | 
      |                                                                                    
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2316 | 
      |                                                                                    
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2320 | 
      |                                                                                    
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2324 | 
      |                                                                                    
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2328 | 
      |                                                                                    
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2332 | 
      |                                                                                    
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2338 | 
      |                                                                                    
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                                        
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2342 | 
      |                                                                                    
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2346 | 
      |                                                                                    
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2350 | 
      |                                                                                    
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2354 | 
      |                                                                                    
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2357 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2358 | 
      |                                                                                    
 2359 |                 .beginConstStdCPtrList <Location> ("LocationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2360 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2361 | 
      |                                                                                    
 2362 |                 .beginConstStdVector <Evoral::Parameter> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2363 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2364 | 
      |                                                                                    
 2365 |                 .beginStdList <std::shared_ptr<AutomationControl> > ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2366 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2367 | 
      |                                                                                    
 2368 |                 .beginPtrStdList <std::shared_ptr<AutomationControl> > ("ControlListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2369 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <AutomationControl> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2370 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2371 | 
      |                                                                                    
 2372 |                 .beginStdList <std::shared_ptr<Evoral::Note<Temporal::Beats> > > ("NotePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2373 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                       
 2374 | 
      |                                                                                    
 2375 |                 .beginStdList <std::shared_ptr<Evoral::Event<Temporal::Beats> > > ("EventPtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<Evoral::Event<Temporal::Beats> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >; T = std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1289:21:   required from 'static int luabridge::CFunc::listIterIter(lua_State*) [with T = std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >; C = std::__cxx11::list<std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > >; lua_State = lua_State]'
 1289 |     Stack <T>::push (L, **iter);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1302:22:   required from 'static int luabridge::CFunc::listIterHelper(lua_State*, const C*) [with T = std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >; C = std::__cxx11::list<std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > >; lua_State = lua_State]'
 1302 |     lua_pushcclosure (L, listIterIter<T, C>, 2);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1310:33:   required from 'static int luabridge::CFunc::listIter(lua_State*) [with T = std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >; C = std::__cxx11::list<std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > >; lua_State = lua_State]'
 1310 |     return listIterHelper<T, C> (L, t);
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2015:24:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginConstStdList(const char*) [with T = std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >]'
 2008 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2009 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~~~
 2010 |       .addFunction ("empty", static_cast<bool (LT::*)() const>(&LT::empty))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2011 |       .addFunction ("size", static_cast<T_SIZE (LT::*)() const>(&LT::size))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2012 |       .addFunction ("reverse", static_cast<void (LT::*)()>(&LT::reverse))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2013 |       .addFunction ("front", static_cast<T& (LT::*)()>(&LT::front))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2014 |       .addFunction ("back", static_cast<T& (LT::*)()>(&LT::back))
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2015 |       .addExtCFunction ("iter", &CFunc::listIter<T, LT>)
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2024:33:   required from 'luabridge::Namespace::Class<std::__cxx11::list<U> > luabridge::Namespace::beginStdList(const char*) [with T = std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >]'
 2024 |     return beginConstStdList<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:2378:75:   required from here
 1999 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                
 2000 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                               
 2001 | 
      |                                                                                          
 2002 |                 .beginNamespace ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                                               
 2003 |                 .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2004 |                 .addData ("name", &Plugin::IOPortDescription::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2005 |                 .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2006 |                 .addData ("group_name", &Plugin::IOPortDescription::group_name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2007 |                 .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2008 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2009 |                 .endNamespace ()
      |                 ~~~~~~~~~~~~~~~~                                                         
 2010 | 
      |                                                                                          
 2011 |                 .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2012 |                 .addCast<LuaProc> ("to_luaproc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                         
 2013 |                 .addFunction ("unique_id", &Plugin::unique_id)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2014 |                 .addFunction ("label", &Plugin::label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                   
 2015 |                 .addFunction ("name", &Plugin::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                     
 2016 |                 .addFunction ("maker", &Plugin::maker)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                   
 2017 |                 .addFunction ("parameter_count", &Plugin::parameter_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2018 |                 .addFunction ("parameter_label", &Plugin::parameter_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2019 |                 .addRefFunction ("nth_parameter", &Plugin::nth_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2020 |                 .addFunction ("preset_by_label", &Plugin::preset_by_label)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2021 |                 .addFunction ("preset_by_uri", &Plugin::preset_by_uri)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2022 |                 .addFunction ("save_preset", &Plugin::save_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2023 |                 .addFunction ("load_preset", &Plugin::load_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2024 |                 .addFunction ("last_preset", &Plugin::last_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2025 |                 .addFunction ("remove_preset", &Plugin::remove_preset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2026 |                 .addFunction ("parameter_is_input", &Plugin::parameter_is_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2027 |                 .addFunction ("parameter_is_output", &Plugin::parameter_is_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2028 |                 .addFunction ("parameter_is_control", &Plugin::parameter_is_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2029 |                 .addFunction ("parameter_is_audio", &Plugin::parameter_is_audio)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2030 |                 .addFunction ("get_docs", &Plugin::get_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2031 |                 .addFunction ("get_info", &Plugin::get_info)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2032 |                 .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2033 |                 .addFunction ("describe_io_port", &Plugin::describe_io_port)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2034 |                 .addFunction ("get_parameter", &Plugin::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2035 |                 .addFunction ("default_value", &Plugin::default_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2036 |                 .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2037 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2038 | 
      |                                                                                          
 2039 |                 .deriveWSPtrClass <LuaProc, Plugin> ("LuaProc")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2040 |                 .addFunction ("shmem", &LuaProc::instance_shm)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2041 |                 .addFunction ("table", &LuaProc::instance_ref)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2042 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2043 | 
      |                                                                                          
 2044 |                 .deriveWSPtrClass <PluginInsert, Processor> ("PluginInsert")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2045 |                 .addFunction ("plugin", &PluginInsert::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2046 |                 .addFunction ("activate", &PluginInsert::activate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2047 |                 .addFunction ("deactivate", &PluginInsert::deactivate)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2048 |                 .addFunction ("enable", &PluginInsert::enable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2049 |                 .addFunction ("enabled", &PluginInsert::enabled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2050 |                 .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2051 |                 .addFunction ("write_immediate_event", &PluginInsert::write_immediate_event)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2052 |                 .addFunction ("thru_map", &PluginInsert::thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2053 |                 .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2054 |                 .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2055 |                 .addFunction ("set_thru_map", &PluginInsert::set_thru_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2056 |                 .addFunction ("set_input_map", &PluginInsert::set_input_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2057 |                 .addFunction ("set_output_map", &PluginInsert::set_output_map)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2058 |                 .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2059 |                 .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2060 |                 .addFunction ("reset_parameters_to_default", &PluginInsert::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2061 |                 .addFunction ("has_sidechain", &PluginInsert::has_sidechain)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2062 |                 .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2063 |                 .addFunction ("is_instrument", &PluginInsert::is_instrument)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2064 |                 .addFunction ("type", &PluginInsert::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2065 |                 .addFunction ("signal_latency", &PluginInsert::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2066 |                 .addFunction ("get_count", &PluginInsert::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2067 |                 .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2068 |                 .addFunction ("control_output", &PluginInsert::control_output)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2069 |                 .addFunction ("clear_stats", &PluginInsert::clear_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2070 |                 .addRefFunction ("get_stats", &PluginInsert::get_stats)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2071 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2072 | 
      |                                                                                          
 2073 |                 .deriveWSPtrClass <RegionFxPlugin, SessionObject> ("RegionFxPlugin")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2074 |                 .addFunction ("plugin", &RegionFxPlugin::plugin)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 2075 |                 .addFunction ("signal_latency", &RegionFxPlugin::signal_latency)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2076 |                 .addFunction ("get_count", &RegionFxPlugin::get_count)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2077 |                 .addFunction ("type", &RegionFxPlugin::type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2078 |                 .addFunction ("reset_parameters_to_default", &RegionFxPlugin::reset_parameters_to_default)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2079 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2080 | 
      |                                                                                          
 2081 |                 .deriveWSPtrClass <MPControl<gain_t>, PBD::Controllable> ("MPGainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2082 |                 .addFunction ("set_value", &MPControl<gain_t>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2083 |                 .addFunction ("get_value", &MPControl<gain_t>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2084 |                 .addFunction ("get_user_string", &MPControl<gain_t>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2085 |                 .addFunction ("lower", &MPControl<gain_t>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2086 |                 .addFunction ("upper", &MPControl<gain_t>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2087 |                 .addFunction ("normal", &MPControl<gain_t>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2088 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2089 | 
      |                                                                                          
 2090 |                 .deriveWSPtrClass <MPControl<bool>, PBD::Controllable> ("MPToggleControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2091 |                 .addFunction ("set_value", &MPControl<bool>::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2092 |                 .addFunction ("get_value", &MPControl<bool>::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2093 |                 .addFunction ("get_user_string", &MPControl<bool>::get_user_string)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2094 |                 .addFunction ("lower", &MPControl<bool>::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2095 |                 .addFunction ("upper", &MPControl<bool>::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2096 |                 .addFunction ("normal", &MPControl<bool>::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2097 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2098 | 
      |                                                                                          
 2099 |                 .deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2100 |                 .addFunction ("get_parameter", &ReadOnlyControl::get_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2101 |                 .addFunction ("describe_parameter", &ReadOnlyControl::describe_parameter)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2102 |                 .addFunction ("desc", &ReadOnlyControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2103 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2104 | 
      |                                                                                          
 2105 |                 .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2106 |                 .addCast<Evoral::Control> ("to_ctrl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                    
 2107 |                 .addCast<SlavableAutomationControl> ("to_slavable")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2108 |                 .addFunction ("automation_state", &AutomationControl::automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2109 |                 .addFunction ("set_automation_state", &AutomationControl::set_automation_state)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2110 |                 .addFunction ("start_touch", &AutomationControl::start_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2111 |                 .addFunction ("stop_touch", &AutomationControl::stop_touch)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2112 |                 .addFunction ("get_value", &AutomationControl::get_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2113 |                 .addFunction ("set_value", &AutomationControl::set_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2114 |                 .addFunction ("writable", &AutomationControl::writable)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2115 |                 .addFunction ("alist", &AutomationControl::alist)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2116 |                 .addFunction ("desc", &AutomationControl::desc)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2117 |                 .addFunction ("lower", &AutomationControl::lower)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2118 |                 .addFunction ("upper", &AutomationControl::upper)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2119 |                 .addFunction ("normal", &AutomationControl::normal)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2120 |                 .addFunction ("toggled", &AutomationControl::toggled)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2121 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2122 | 
      |                                                                                          
 2123 |                 .deriveWSPtrClass <SlavableAutomationControl, AutomationControl> ("SlavableAutomationControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2124 |                 .addFunction ("add_master", &SlavableAutomationControl::add_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2125 |                 .addFunction ("remove_master", &SlavableAutomationControl::remove_master)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2126 |                 .addFunction ("clear_masters", &SlavableAutomationControl::clear_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2127 |                 .addFunction ("slaved_to", &SlavableAutomationControl::slaved_to)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
 2128 |                 .addFunction ("slaved", &SlavableAutomationControl::slaved)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2129 |                 .addFunction ("get_masters_value", &SlavableAutomationControl::get_masters_value)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2130 |                 .addFunction ("get_boolean_masters", &SlavableAutomationControl::get_boolean_masters)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2131 |                 //.addFunction ("masters", &SlavableAutomationControl::masters) // not implemented
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2132 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2133 | 
      |                                                                                          
 2134 |                 .deriveWSPtrClass <PhaseControl, AutomationControl> ("PhaseControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2135 |                 .addFunction ("set_phase_invert", (void(PhaseControl::*)(uint32_t, bool))&PhaseControl::set_phase_invert)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2136 |                 .addFunction ("inverted", &PhaseControl::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2137 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2138 | 
      |                                                                                          
 2139 |                 .deriveWSPtrClass <GainControl, SlavableAutomationControl> ("GainControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2140 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2141 | 
      |                                                                                          
 2142 |                 .deriveWSPtrClass <MonitorControl, SlavableAutomationControl> ("MonitorControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2143 |                 .addFunction ("monitoring_choice", &MonitorControl::monitoring_choice)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2144 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2145 | 
      |                                                                                          
 2146 |                 .deriveWSPtrClass <SoloControl, SlavableAutomationControl> ("SoloControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2147 |                 .addFunction ("can_solo", &SoloControl::can_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2148 |                 .addFunction ("soloed", &SoloControl::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2149 |                 .addFunction ("self_soloed", &SoloControl::self_soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2150 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2151 | 
      |                                                                                          
 2152 |                 .deriveWSPtrClass <MuteControl, SlavableAutomationControl> ("MuteControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2153 |                 .addFunction ("muted", &MuteControl::muted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2154 |                 .addFunction ("muted_by_self", &MuteControl::muted_by_self)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2155 |                 .addFunction ("mute_points", &MuteControl::mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2156 |                 .addFunction ("set_mute_points", &MuteControl::set_mute_points)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2157 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2158 | 
      |                                                                                          
 2159 |                 .deriveWSPtrClass <SoloIsolateControl, SlavableAutomationControl> ("SoloIsolateControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2160 |                 .addFunction ("solo_isolated", &SoloIsolateControl::solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2161 |                 .addFunction ("self_solo_isolated", &SoloIsolateControl::self_solo_isolated)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2163 | 
      |                                                                                          
 2164 |                 .deriveWSPtrClass <SoloSafeControl, SlavableAutomationControl> ("SoloSafeControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2165 |                 .addFunction ("solo_safe", &SoloSafeControl::solo_safe)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2166 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2167 | 
      |                                                                                          
 2168 |                 .deriveWSPtrClass <Amp, Processor> ("Amp")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2169 |                 .addFunction ("gain_control", (std::shared_ptr<GainControl>(Amp::*)())&Amp::gain_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2170 |                 .addStaticFunction ("apply_gain", static_cast<gain_t (*)(AudioBuffer&, samplecnt_t, samplecnt_t, gain_t, gain_t, sampleoffset_t)>(&Amp::apply_gain))
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2171 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2172 | 
      |                                                                                          
 2173 |                 .deriveWSPtrClass <PeakMeter, Processor> ("PeakMeter")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2174 |                 .addFunction ("meter_level", &PeakMeter::meter_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2175 |                 .addFunction ("set_meter_type", &PeakMeter::set_meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2176 |                 .addFunction ("meter_type", &PeakMeter::meter_type)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2177 |                 .addFunction ("reset_max", &PeakMeter::reset_max)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2178 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2179 | 
      |                                                                                          
 2180 |                 .deriveWSPtrClass <MonitorProcessor, Processor> ("MonitorProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2181 |                 .addFunction ("set_cut_all", &MonitorProcessor::set_cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2182 |                 .addFunction ("set_dim_all", &MonitorProcessor::set_dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2183 |                 .addFunction ("set_polarity", &MonitorProcessor::set_polarity)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2184 |                 .addFunction ("set_cut", &MonitorProcessor::set_cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2185 |                 .addFunction ("set_dim", &MonitorProcessor::set_dim)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2186 |                 .addFunction ("set_solo", &MonitorProcessor::set_solo)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2187 |                 .addFunction ("set_mono", &MonitorProcessor::set_mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2188 |                 .addFunction ("dim_level", &MonitorProcessor::dim_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2189 |                 .addFunction ("solo_boost_level", &MonitorProcessor::solo_boost_level)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2190 |                 .addFunction ("dimmed", &MonitorProcessor::dimmed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2191 |                 .addFunction ("soloed", &MonitorProcessor::soloed)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2192 |                 .addFunction ("inverted", &MonitorProcessor::inverted)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2193 |                 .addFunction ("cut", &MonitorProcessor::cut)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2194 |                 .addFunction ("cut_all", &MonitorProcessor::cut_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2195 |                 .addFunction ("dim_all", &MonitorProcessor::dim_all)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2196 |                 .addFunction ("mono", &MonitorProcessor::mono)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2197 |                 .addFunction ("monitor_active", &MonitorProcessor::monitor_active)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2198 |                 .addFunction ("channel_cut_control", &MonitorProcessor::channel_cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2199 |                 .addFunction ("channel_dim_control", &MonitorProcessor::channel_dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2200 |                 .addFunction ("channel_polarity_control", &MonitorProcessor::channel_polarity_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2201 |                 .addFunction ("channel_solo_control", &MonitorProcessor::channel_solo_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2202 |                 .addFunction ("dim_control", &MonitorProcessor::dim_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2203 |                 .addFunction ("cut_control", &MonitorProcessor::cut_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2204 |                 .addFunction ("mono_control", &MonitorProcessor::mono_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
 2205 |                 .addFunction ("dim_level_control", &MonitorProcessor::dim_level_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2206 |                 .addFunction ("solo_boost_control", &MonitorProcessor::solo_boost_control)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2207 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2208 | 
      |                                                                                          
 2209 |                 .deriveWSPtrClass <UnknownProcessor, Processor> ("UnknownProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2210 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2211 | 
      |                                                                                          
 2212 |                 .deriveWSPtrClass <PolarityProcessor, Processor> ("PolarityProcessor")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
 2213 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2214 | 
      |                                                                                          
 2215 |                 .deriveWSPtrClass <DelayLine, Processor> ("DelayLine")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2216 |                 .addFunction ("delay", &DelayLine::delay)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
 2217 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2218 | 
      |                                                                                          
 2219 |                 .deriveWSPtrClass <PlugInsertBase::PluginControl, AutomationControl> ("PluginControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2220 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2221 | 
      |                                                                                          
 2222 |                 .deriveWSPtrClass <PlugInsertBase::PluginPropertyControl, AutomationControl> ("PluginPropertyControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2223 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2224 | 
      |                                                                                          
 2225 |                 .deriveWSPtrClass <PluginInsert::PIControl, PlugInsertBase::PluginControl> ("PIControl")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2226 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2227 | 
      |                                                                                          
 2228 |                 .beginClass <RawMidiParser> ("RawMidiParser")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2229 |                 .addVoidConstructor ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~                                                   
 2230 |                 .addFunction ("reset", &RawMidiParser::reset)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            
 2231 |                 .addFunction ("process_byte", &RawMidiParser::process_byte)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2232 |                 .addFunction ("buffer_size", &RawMidiParser::buffer_size)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2233 |                 .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2234 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2235 | 
      |                                                                                          
 2236 |                 .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2237 |                 .addFunction ("readable_length", &AudioSource::readable_length_samples)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 2238 |                 .addFunction ("n_channels", &AudioSource::n_channels)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2239 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2240 | 
      |                                                                                          
 2241 |                 // <std::list<std::shared_ptr <AudioTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2242 |                 .beginStdList <std::shared_ptr<AudioTrack> > ("AudioTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2243 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2244 | 
      |                                                                                          
 2245 |                 .beginStdList <TimelineRange> ("TimelineRangeList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2246 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2247 | 
      |                                                                                          
 2248 |                 // std::list<std::shared_ptr <MidiTrack> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
 2249 |                 .beginStdList <std::shared_ptr<MidiTrack> > ("MidiTrackList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2250 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2251 | 
      |                                                                                          
 2252 |                 // RouteList == std::list<std::shared_ptr<Route> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2253 |                 .beginConstStdList <std::shared_ptr<Route> > ("RouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2254 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2255 | 
      |                                                                                          
 2256 |                 // StripableList == std::list<std::shared_ptr<Stripable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2257 |                 .beginConstStdList <std::shared_ptr<Stripable> > ("StripableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2258 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2259 | 
      |                                                                                          
 2260 |                 // VCAList == std::list<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           
 2261 |                 .beginConstStdList <std::shared_ptr<VCA> > ("VCAList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2262 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2263 | 
      |                                                                                          
 2264 |                 // VCAVector == std::vector<std::shared_ptr<VCA> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2265 |                 .beginConstStdVector <std::shared_ptr<VCA> > ("VCAVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2266 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2267 | 
      |                                                                                          
 2268 |                 // std::shared_ptr<RouteList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 2269 |                 .beginPtrConstStdList <std::shared_ptr<Route> > ("ConstRouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2270 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2271 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2272 | 
      |                                                                                          
 2273 |                 // std::shared_ptr<RouteList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                            
 2274 |                 .beginPtrStdList <std::shared_ptr<Route> > ("RouteListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2275 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Route> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2276 |                 .addStaticCFunction ("from_routelist", &to_ptr<ARDOUR::RouteList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2277 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2278 | 
      |                                                                                          
 2279 |                 // std::shared_ptr<BundleList const>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                     
 2280 |                 .beginPtrConstStdVector <std::shared_ptr<Bundle> > ("ConstBundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2281 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > const > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2282 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2283 | 
      |                                                                                          
 2284 |                 // std::shared_ptr<BundleList>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                           
 2285 |                 .beginPtrStdVector <std::shared_ptr<Bundle> > ("BundleListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2286 |                 .addVoidPtrConstructor<std::vector<std::shared_ptr <Bundle> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2287 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2288 | 
      |                                                                                          
 2289 |                 // typedef std::list<std::weak_ptr <Route> > WeakRouteList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2290 |                 .beginConstStdList <std::weak_ptr<Route> > ("WeakRouteList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2291 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2292 | 
      |                                                                                          
 2293 |                 // RouteGroupList == std::list<RouteGroup*>
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2294 |                 .beginConstStdCPtrList <RouteGroup> ("RouteGroupList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
 2295 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2296 | 
      |                                                                                          
 2297 |                 // typedef std::vector<std::shared_ptr<Source> > Region::SourceList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2298 |                 .beginStdVector <std::shared_ptr<Source> > ("SourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2299 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2300 | 
      |                                                                                          
 2301 |                 // typedef std::vector<std::shared_ptr<AudioReadable> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
 2302 |                 .beginStdVector <std::shared_ptr<AudioReadable> > ("ReadableList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2303 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2304 | 
      |                                                                                          
 2305 |                 // from SessionPlaylists: std::vector<std::shared_ptr<Playlist > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2306 |                 .beginStdVector <std::shared_ptr<Playlist> > ("PlaylistList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2307 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2308 | 
      |                                                                                          
 2309 |                 // std::list< std::weak_ptr <AudioSource> >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              
 2310 |                 .beginConstStdList <std::weak_ptr<AudioSource> > ("WeakAudioSourceList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 2311 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2312 | 
      |                                                                                          
 2313 |                 // typedef std::vector<std::shared_ptr<Region> > RegionVector
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2314 |                 .beginStdVector <std::shared_ptr<Region> > ("RegionVector")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
 2315 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2316 | 
      |                                                                                          
 2317 |                 // typedef std::set <std::shared_ptr<PBD::Controllable> > PBD::ControllableSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2318 |                 .beginStdSet <std::shared_ptr<PBD::Controllable>> ("ControllableSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2319 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2320 | 
      |                                                                                          
 2321 |                 // typedef std::set <enum AutomationType> AutomationTypeSet;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2322 |                 .beginStdSet <AutomationType> ("AutomationTypeSet")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                      
 2323 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2324 | 
      |                                                                                          
 2325 |                 // typedef std::vector<samplepos_t> XrunPositions
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
 2326 |                 .beginStdVector <samplepos_t> ("XrunPositions")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
 2327 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2328 | 
      |                                                                                          
 2329 |                 // typedef std::list<std::shared_ptr<Region> > RegionList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2330 |                 .beginConstStdList <std::shared_ptr<Region> > ("RegionList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             
 2331 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2332 | 
      |                                                                                          
 2333 |                 // std::shared_ptr <std::list<std::shared_ptr<Region> > >
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
 2334 |                 .beginPtrStdList <std::shared_ptr<Region> > ("RegionListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2335 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <Region> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2336 |                 .addStaticCFunction ("from_regionlist", &to_ptr<ARDOUR::RegionList>)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
 2337 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2338 | 
      |                                                                                          
 2339 |                 // RegionFactory::RegionMap
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~                                              
 2340 |                 .beginStdMap <PBD::ID,std::shared_ptr<Region> > ("RegionMap")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2341 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2342 | 
      |                                                                                          
 2343 |                 // typedef std::map<std::string, DPM> PortManager::AudioPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2344 |                 .beginStdMap <std::string, PortManager::DPM> ("AudioPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
 2345 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2346 | 
      |                                                                                          
 2347 |                 // typedef std::map<std::string, MPM> PortManager::MIDIPortMeters;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
 2348 |                 .beginStdMap <std::string, PortManager::MPM> ("MIDIPortMeters")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2349 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2350 | 
      |                                                                                          
 2351 |                 // typedef std::list<std::shared_ptr<Processor> > ProcessorList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
 2352 |                 .beginStdList <std::shared_ptr<Processor> > ("ProcessorList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            
 2353 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2354 | 
      |                                                                                          
 2355 |                 //std::list<std::shared_ptr<Port> > PortList
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                             
 2356 |                 .beginConstStdList <std::shared_ptr<Port> > ("PortList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
 2357 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2358 | 
      |                                                                                          
 2359 |                 .beginConstStdCPtrList <Location> ("LocationList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                       
 2360 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2361 | 
      |                                                                                          
 2362 |                 .beginConstStdVector <Evoral::Parameter> ("ParameterList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
 2363 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2364 | 
      |                                                                                          
 2365 |                 .beginStdList <std::shared_ptr<AutomationControl> > ("ControlList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 2366 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2367 | 
      |                                                                                          
 2368 |                 .beginPtrStdList <std::shared_ptr<AutomationControl> > ("ControlListPtr")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2369 |                 .addVoidPtrConstructor<std::list<std::shared_ptr <AutomationControl> > > ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2370 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2371 | 
      |                                                                                          
 2372 |                 .beginStdList <std::shared_ptr<Evoral::Note<Temporal::Beats> > > ("NotePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2373 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2374 | 
      |                                                                                          
 2375 |                 .beginStdList <std::shared_ptr<Evoral::Event<Temporal::Beats> > > ("EventPtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2376 |                 .endClass ()
      |                 ~~~~~~~~~~~~                                                             
 2377 | 
      |                                                                                          
 2378 |                 .beginStdList <std::shared_ptr<Evoral::PatchChange<Temporal::Beats> > > ("PatchChangePtrList")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'std::shared_ptr<Evoral::PatchChange<Temporal::Beats> >*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h: In instantiation of 'T* luabridge::UserdataValue<T>::getObject() [with T = ARDOUR::AudioBackend::DeviceStatus]':
../libs/lua/LuaBridge/detail/Userdata.h:383:11:   required from 'luabridge::UserdataValue<T>::UserdataValue() [with T = ARDOUR::AudioBackend::DeviceStatus]'
  383 |     m_p = getObject ();
      |           ^~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:400:35:   required from 'static void* luabridge::UserdataValue<T>::place(lua_State*) [with T = ARDOUR::AudioBackend::DeviceStatus; lua_State = lua_State]'
  400 |     UserdataValue <T>* const ud = new (
      |                                   ^~~~~
  401 |       lua_newuserdata (L, sizeof (UserdataValue <T>))) UserdataValue <T> ();
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:415:16:   required from 'static void luabridge::UserdataValue<T>::push(lua_State*, const U&) [with U = ARDOUR::AudioBackend::DeviceStatus; T = ARDOUR::AudioBackend::DeviceStatus; lua_State = lua_State]'
  415 |     new (place (L)) U (u);
      |          ~~~~~~^~~
../libs/lua/LuaBridge/detail/Userdata.h:681:29:   required from 'static void luabridge::StackHelper<T, false, false>::push(lua_State*, const T&) [with T = ARDOUR::AudioBackend::DeviceStatus; lua_State = lua_State]'
  681 |     UserdataValue <T>::push (L, t);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:719:43:   required from 'static void luabridge::Stack<T>::push(lua_State*, const T&) [with T = ARDOUR::AudioBackend::DeviceStatus; lua_State = lua_State]'
  717 |     StackHelper <T,
      |     ~~~~~~~~~~~~~~~                        
  718 |       TypeTraits::isContainer <T>::value,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  719 |       TypeTraits::isEnum<T>::value>::push (L, t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1289:21:   required from 'static int luabridge::CFunc::listIterIter(lua_State*) [with T = ARDOUR::AudioBackend::DeviceStatus; C = std::vector<ARDOUR::AudioBackend::DeviceStatus>; lua_State = lua_State]'
 1289 |     Stack <T>::push (L, **iter);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1302:22:   required from 'static int luabridge::CFunc::listIterHelper(lua_State*, const C*) [with T = ARDOUR::AudioBackend::DeviceStatus; C = std::vector<ARDOUR::AudioBackend::DeviceStatus>; lua_State = lua_State]'
 1302 |     lua_pushcclosure (L, listIterIter<T, C>, 2);
      |     ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/CFunctions.h:1310:33:   required from 'static int luabridge::CFunc::listIter(lua_State*) [with T = ARDOUR::AudioBackend::DeviceStatus; C = std::vector<ARDOUR::AudioBackend::DeviceStatus>; lua_State = lua_State]'
 1310 |     return listIterHelper<T, C> (L, t);
      |            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2087:24:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginConstStdVector(const char*) [with T = ARDOUR::AudioBackend::DeviceStatus]'
 2082 |     return beginClass<LT> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~
 2083 |       .addVoidConstructor ()
      |       ~~~~~~~~~~~~~~~~~~~~~~
 2084 |       .addFunction ("empty", (bool (LT::*)()const)&LT::empty)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2085 |       .addFunction ("size", (T_SIZE (LT::*)()const)&LT::size)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2086 |       .addFunction ("at", (T_REF (LT::*)(T_SIZE))&LT::at)
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2087 |       .addExtCFunction ("iter", &CFunc::listIter<T, LT>)
      |       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Namespace.h:2096:35:   required from 'luabridge::Namespace::Class<std::vector<T> > luabridge::Namespace::beginStdVector(const char*) [with T = ARDOUR::AudioBackend::DeviceStatus]'
 2096 |     return beginConstStdVector<T> (name)
      |            ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
../libs/ardour/luabindings.cc:2901:48:   required from here
 2890 |         luabridge::getGlobalNamespace (L)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
 2891 |                 .beginNamespace ("ARDOUR")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~                    
 2892 |                 .beginClass <AudioBackendInfo> ("AudioBackendInfo")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2893 |                 .addData ("name", &AudioBackendInfo::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 2894 |                 .endClass()
      |                 ~~~~~~~~~~~                                   
 2895 |                 .beginConstStdVector <const AudioBackendInfo*> ("BackendVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2896 | 
      |                                                               
 2897 |                 .beginClass <AudioBackend::DeviceStatus> ("DeviceStatus")
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2898 |                 .addData ("name", &AudioBackend::DeviceStatus::name)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2899 |                 .addData ("available", &AudioBackend::DeviceStatus::available)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2900 |                 .endClass()
      |                 ~~~~~~~~~~~                                   
 2901 |                 .beginStdVector <AudioBackend::DeviceStatus> ("DeviceStatusVector").endClass ()
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
../libs/lua/LuaBridge/detail/Userdata.h:374:12: warning: cast from 'char*' to 'ARDOUR::AudioBackend::DeviceStatus*' increases required alignment of target type [-Wcast-align]
  374 |     return reinterpret_cast <T*> (&m_storage [0]);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../libs/lua/LuaBridge/LuaBridge.h:71:
In static member function 'static R luabridge::FuncTraits<R (T::*)(P1), D>::call(T*, D, luabridge::TypeListValues<luabridge::TypeList<P2> >&) [with T = std::__cxx11::list<long int>; R = void; P1 = const long int&; D = void (std::__cxx11::list<long int>::*)(const long int&)]',
    inlined from 'static int luabridge::CFunc::CallMember<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (std::__cxx11::list<long int>::*)(const long int&)]' at ../libs/lua/LuaBridge/detail/CFunctions.h:735:35:
../libs/lua/LuaBridge/detail/FuncTraits.h:261:22: warning: using a dangling pointer to an unnamed temporary [-Wdangling-pointer=]
  261 |     return (obj->*fp)(tvl.hd);
      |            ~~~~~~~~~~^~~~~~~~
In file included from ../libs/lua/LuaBridge/LuaBridge.h:70:
../libs/lua/LuaBridge/detail/TypeList.h: In static member function 'static int luabridge::CFunc::CallMember<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (std::__cxx11::list<long int>::*)(const long int&)]':
../libs/lua/LuaBridge/detail/TypeList.h:127:74: note: unnamed temporary defined here
  127 |                                             ArgList <Tail, Start + 1> (L))
      |                                                                          ^
In static member function 'static R luabridge::FuncTraits<R (T::*)(P1) const, D>::call(const T*, D, luabridge::TypeListValues<luabridge::TypeList<P2> >&) [with T = std::map<int, std::vector<_VampHost::Vamp::Plugin::Feature> >; R = long unsigned int; P1 = const int&; D = long unsigned int (std::map<int, std::vector<_VampHost::Vamp::Plugin::Feature> >::*)(const int&) const]',
    inlined from 'static int luabridge::CFunc::CallConstMember<MemFnPtr, ReturnType>::f(lua_State*) [with MemFnPtr = long unsigned int (std::map<int, std::vector<_VampHost::Vamp::Plugin::Feature> >::*)(const int&) const; ReturnType = long unsigned int]' at ../libs/lua/LuaBridge/detail/CFunctions.h:331:32:
../libs/lua/LuaBridge/detail/FuncTraits.h:458:22: warning: using a dangling pointer to an unnamed temporary [-Wdangling-pointer=]
  458 |     return (obj->*fp)(tvl.hd);
      |            ~~~~~~~~~~^~~~~~~~
../libs/lua/LuaBridge/detail/TypeList.h: In static member function 'static int luabridge::CFunc::CallConstMember<MemFnPtr, ReturnType>::f(lua_State*) [with MemFnPtr = long unsigned int (std::map<int, std::vector<_VampHost::Vamp::Plugin::Feature> >::*)(const int&) const; ReturnType = long unsigned int]':
../libs/lua/LuaBridge/detail/TypeList.h:127:74: note: unnamed temporary defined here
  127 |                                             ArgList <Tail, Start + 1> (L))
      |                                                                          ^
In file included from /usr/include/c++/14.2.0/bits/shared_ptr_atomic.h:33,
                 from /usr/include/c++/14.2.0/memory:81,
                 from /usr/include/glibmm-2.4/glibmm/variant.h:33,
                 from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
                 from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
                 from /usr/include/glibmm-2.4/glibmm.h:107,
                 from ../libs/ardour/luabindings.cc:23:
In member function 'std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::load(std::memory_order) const [with _ITp = long int]',
    inlined from 'int62_t::int62_t(const int62_t&)' at ../libs/pbd/pbd/int62.h:64:44,
    inlined from 'Temporal::timepos_t::timepos_t(const Temporal::timepos_t&)' at ../libs/temporal/temporal/timeline.h:56:23,
    inlined from 'Temporal::Range::Range(const Temporal::Range&)' at ../libs/temporal/temporal/range.h:138:23,
    inlined from 'ARDOUR::TimelineRange::TimelineRange(const ARDOUR::TimelineRange&)' at ../libs/ardour/ardour/types.h:381:8,
    inlined from 'static T luabridge::Stack<T>::get(lua_State*, int) [with T = ARDOUR::TimelineRange]' at ../libs/lua/LuaBridge/detail/Userdata.h:726:51,
    inlined from 'static int luabridge::CFunc::tableToListHelper(lua_State*, C*) [with T = ARDOUR::TimelineRange; C = std::__cxx11::list<ARDOUR::TimelineRange>]' at ../libs/lua/LuaBridge/detail/CFunctions.h:1242:15,
    inlined from 'static int luabridge::CFunc::tableToListHelper(lua_State*, C*) [with T = ARDOUR::TimelineRange; C = std::__cxx11::list<ARDOUR::TimelineRange>]' at ../libs/lua/LuaBridge/detail/CFunctions.h:1234:14,
    inlined from 'static int luabridge::CFunc::tableToList(lua_State*) [with T = ARDOUR::TimelineRange; C = std::__cxx11::list<ARDOUR::TimelineRange>]' at ../libs/lua/LuaBridge/detail/CFunctions.h:1256:36:
/usr/include/c++/14.2.0/bits/atomic_base.h:501:31: warning: 'long unsigned int __atomic_load_8(const volatile void*, int)' writing 8 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
  501 |         return __atomic_load_n(&_M_i, int(__m));
      |                ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
In static member function 'static int luabridge::CFunc::tableToList(lua_State*) [with T = ARDOUR::TimelineRange; C = std::__cxx11::list<ARDOUR::TimelineRange>]':
cc1plus: note: destination object is likely at address zero
In static member function 'static R luabridge::FuncTraits<R (T::*)(P1), D>::call(T*, D, luabridge::TypeListValues<luabridge::TypeList<P2> >&) [with T = std::vector<float>; R = void; P1 = const float&; D = void (std::vector<float>::*)(const float&)]',
    inlined from 'static int luabridge::CFunc::CallMember<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (std::vector<float>::*)(const float&)]' at ../libs/lua/LuaBridge/detail/CFunctions.h:735:35:
../libs/lua/LuaBridge/detail/FuncTraits.h:261:22: warning: using a dangling pointer to an unnamed temporary [-Wdangling-pointer=]
  261 |     return (obj->*fp)(tvl.hd);
      |            ~~~~~~~~~~^~~~~~~~
../libs/lua/LuaBridge/detail/TypeList.h: In static member function 'static int luabridge::CFunc::CallMember<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (std::vector<float>::*)(const float&)]':
../libs/lua/LuaBridge/detail/TypeList.h:127:74: note: unnamed temporary defined here
  127 |                                             ArgList <Tail, Start + 1> (L))
      |                                                                          ^
In static member function 'static R luabridge::FuncTraits<R (T::*)(P1), D>::call(T*, D, luabridge::TypeListValues<luabridge::TypeList<P2> >&) [with T = std::vector<unsigned char>; R = void; P1 = const unsigned char&; D = void (std::vector<unsigned char>::*)(const unsigned char&)]',
    inlined from 'static int luabridge::CFunc::CallMember<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (std::vector<unsigned char>::*)(const unsigned char&)]' at ../libs/lua/LuaBridge/detail/CFunctions.h:735:35:
../libs/lua/LuaBridge/detail/FuncTraits.h:261:22: warning: using a dangling pointer to an unnamed temporary [-Wdangling-pointer=]
  261 |     return (obj->*fp)(tvl.hd);
      |            ~~~~~~~~~~^~~~~~~~
../libs/lua/LuaBridge/detail/TypeList.h: In static member function 'static int luabridge::CFunc::CallMember<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (std::vector<unsigned char>::*)(const unsigned char&)]':
../libs/lua/LuaBridge/detail/TypeList.h:127:74: note: unnamed temporary defined here
  127 |                                             ArgList <Tail, Start + 1> (L))
      |                                                                          ^
In static member function 'static R luabridge::FuncTraits<R (T::*)(P1), D>::call(T*, D, luabridge::TypeListValues<luabridge::TypeList<P2> >&) [with T = std::vector<int>; R = void; P1 = const int&; D = void (std::vector<int>::*)(const int&)]',
    inlined from 'static int luabridge::CFunc::CallMember<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (std::vector<int>::*)(const int&)]' at ../libs/lua/LuaBridge/detail/CFunctions.h:735:35:
../libs/lua/LuaBridge/detail/FuncTraits.h:261:22: warning: using a dangling pointer to an unnamed temporary [-Wdangling-pointer=]
  261 |     return (obj->*fp)(tvl.hd);
      |            ~~~~~~~~~~^~~~~~~~
../libs/lua/LuaBridge/detail/TypeList.h: In static member function 'static int luabridge::CFunc::CallMember<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (std::vector<int>::*)(const int&)]':
../libs/lua/LuaBridge/detail/TypeList.h:127:74: note: unnamed temporary defined here
  127 |                                             ArgList <Tail, Start + 1> (L))
      |                                                                          ^
In static member function 'static R luabridge::FuncTraits<R (T::*)(P1), D>::call(T*, D, luabridge::TypeListValues<luabridge::TypeList<P2> >&) [with T = std::vector<long int>; R = void; P1 = const long int&; D = void (std::vector<long int>::*)(const long int&)]',
    inlined from 'static int luabridge::CFunc::CallMember<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (std::vector<long int>::*)(const long int&)]' at ../libs/lua/LuaBridge/detail/CFunctions.h:735:35:
../libs/lua/LuaBridge/detail/FuncTraits.h:261:22: warning: using a dangling pointer to an unnamed temporary [-Wdangling-pointer=]
  261 |     return (obj->*fp)(tvl.hd);
      |            ~~~~~~~~~~^~~~~~~~
../libs/lua/LuaBridge/detail/TypeList.h: In static member function 'static int luabridge::CFunc::CallMember<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (std::vector<long int>::*)(const long int&)]':
../libs/lua/LuaBridge/detail/TypeList.h:127:74: note: unnamed temporary defined here
  127 |                                             ArgList <Tail, Start + 1> (L))
      |                                                                          ^
In static member function 'static R luabridge::FuncTraits<R (T::*)(P1), D>::call(T*, D, luabridge::TypeListValues<luabridge::TypeList<P2> >&) [with T = std::vector<float*>; R = void; P1 = float* const&; D = void (std::vector<float*>::*)(float* const&)]',
    inlined from 'static int luabridge::CFunc::CallMember<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (std::vector<float*>::*)(float* const&)]' at ../libs/lua/LuaBridge/detail/CFunctions.h:735:35:
../libs/lua/LuaBridge/detail/FuncTraits.h:261:22: warning: using a dangling pointer to an unnamed temporary [-Wdangling-pointer=]
  261 |     return (obj->*fp)(tvl.hd);
      |            ~~~~~~~~~~^~~~~~~~
../libs/lua/LuaBridge/detail/TypeList.h: In static member function 'static int luabridge::CFunc::CallMember<MemFnPtr, void>::f(lua_State*) [with MemFnPtr = void (std::vector<float*>::*)(float* const&)]':
../libs/lua/LuaBridge/detail/TypeList.h:127:74: note: unnamed temporary defined here
  127 |                                             ArgList <Tail, Start + 1> (L))
      |                                                                          ^

[1776/1835] Linking build/libs/ardour/libluabindings.a
[1777/1835] Linking build/libs/ardour/libardour.so
[1778/1835] Linking build/libs/ctrl-interface/control_protocol/libardourcp.so
[1779/1835] Linking build/libs/waveview/libwaveview.so
[1780/1835] Linking build/libs/backends/pulseaudio/libpulseaudio_backend.so
[1781/1835] Linking build/libs/backends/jack/libjack_audiobackend.so
[1782/1835] Linking build/libs/backends/alsa/libalsa_audiobackend.so
[1783/1835] Linking build/libs/backends/dummy/libdummy_audiobackend.so
[1784/1835] Linking build/libs/ctrl-interface/midi_surface/libardour_midisurface.so
[1785/1835] Linking build/libs/surfaces/generic_midi/libardour_generic_midi.so
[1786/1835] Linking build/libs/surfaces/faderport8/libardour_faderport8.so
[1787/1835] Linking build/libs/surfaces/faderport8/libardour_faderport16.so
[1788/1835] Linking build/libs/surfaces/faderport8/libardour_faderport2.so
[1789/1835] Linking build/libs/surfaces/cc121/libardour_cc121.so
[1790/1835] Linking build/libs/surfaces/mackie/libardour_mcp.so
[1791/1835] Linking build/libs/surfaces/mackie/libardour_ssl_uf8.so
[1792/1835] Linking build/libs/surfaces/us2400/libardour_us2400.so
[1793/1835] Linking build/libs/surfaces/launch_control_xl/libardour_launch_control_xl.so
[1794/1835] Linking build/libs/surfaces/osc/libardour_osc.so
[1795/1835] Linking build/libs/surfaces/contourdesign/libardour_contourdesign.so
[1796/1835] Linking build/libs/panners/2in2out/libpan2in2out.so
[1797/1835] Linking build/libs/panners/1in2out/libpan1in2out.so
[1798/1835] Linking build/libs/panners/vbap/libpanvbap.so
[1799/1835] Linking build/libs/panners/stereobalance/libpanbalance.so
[1800/1835] Linking build/headless/hardour-8.10.0
[1801/1835] Linking build/luasession/luasession
[1802/1835] Linking build/session_utils/ardour8-copy-mixer
[1803/1835] Linking build/session_utils/ardour8-export
[1804/1835] Linking build/session_utils/ardour8-new_empty_session
[1805/1835] Linking build/session_utils/ardour8-new_session
[1806/1835] Linking build/gtk2_ardour/ardour-8.10.0
[1807/1835] Linking build/libs/surfaces/faderport/libardour_faderport.so
[1808/1835] Linking build/libs/surfaces/console1/libardour_console1.so
[1809/1835] Linking build/libs/surfaces/launchpad_pro/libardour_launchpad_pro.so
[1810/1835] Linking build/libs/surfaces/launchpad_x/libardour_launchpad_mini.so
[1811/1835] Linking build/libs/surfaces/launchpad_x/libardour_launchpad_x.so
[1812/1835] Linking build/libs/surfaces/launchkey_4/libardour_launchkey_4.so
[1813/1835] Linking build/libs/surfaces/push2/libardour_push2.so
[1814/1835] Symlinking build/libs/ptformat/libptformat.so
[1815/1835] Symlinking build/libs/vamp-pyin/libardourvamppyin.so
[1816/1835] Symlinking build/libs/aaf/libaaf.so
[1817/1835] Symlinking build/libs/tk/ztk/libztk.so
[1818/1835] Symlinking build/libs/tk/ydk-pixbuf/libydk-pixbuf.so
[1819/1835] Symlinking build/libs/tk/ydk/libydk.so
[1820/1835] Symlinking build/libs/tk/ytk/libytk.so
[1821/1835] Symlinking build/libs/tk/ztkmm/libztkmm.so
[1822/1835] Symlinking build/libs/tk/ydkmm/libydkmm.so
[1823/1835] Symlinking build/libs/tk/ytkmm/libytkmm.so
[1824/1835] Symlinking build/libs/tk/suil/libsuil.so
[1825/1835] Symlinking build/libs/pbd/libpbd.so
[1826/1835] Symlinking build/libs/midi++2/libmidipp.so
[1827/1835] Symlinking build/libs/evoral/libevoral.so
[1828/1835] Symlinking build/libs/temporal/libtemporal.so
[1829/1835] Symlinking build/libs/ardour/libardour.so
[1830/1835] Symlinking build/libs/gtkmm2ext/libgtkmm2ext.so
[1831/1835] Symlinking build/libs/audiographer/libaudiographer.so
[1832/1835] Symlinking build/libs/canvas/libcanvas.so
[1833/1835] Symlinking build/libs/widgets/libwidgets.so
[1834/1835] Symlinking build/libs/waveview/libwaveview.so
[1835/1835] Symlinking build/libs/ardouralsautil/libardouralsautil.so
Waf: Leaving directory `/home/buildozer/aports/community/ardour/src/Ardour-8.10.0/build'
'build' finished successfully (34m30.966s)

-------------------------------------------
Running tests for libs/audiographer...
-------------------------------------------

gtk2_ardour/artest: line 24: /home/buildozer/aports/community/ardour/src/Ardour-8.10.0/build/libs/audiographer/run-tests: not found


-------------------------------------------
Running tests for libs/midi++2...
-------------------------------------------

gtk2_ardour/artest: line 24: /home/buildozer/aports/community/ardour/src/Ardour-8.10.0/build/libs/midi++2/run-tests: not found


-------------------------------------------
Running tests for libs/evoral...
-------------------------------------------

gtk2_ardour/artest: line 24: /home/buildozer/aports/community/ardour/src/Ardour-8.10.0/build/libs/evoral/run-tests: not found


-------------------------------------------
Running tests for libs/pbd...
-------------------------------------------

gtk2_ardour/artest: line 24: /home/buildozer/aports/community/ardour/src/Ardour-8.10.0/build/libs/pbd/run-tests: not found


-------------------------------------------
Running tests for libs/ardour...
-------------------------------------------

gtk2_ardour/artest: line 24: /home/buildozer/aports/community/ardour/src/Ardour-8.10.0/build/libs/ardour/run-tests: not found


-------------------------------------------
Running tests for libs/temporal...
-------------------------------------------

gtk2_ardour/artest: line 24: /home/buildozer/aports/community/ardour/src/Ardour-8.10.0/build/libs/temporal/run-tests: not found



 *** SOME TEST(s) FAILED ***


'test' finished successfully (0.031s)
>>> ardour: Entering fakeroot...
Waf: Entering directory `/home/buildozer/aports/community/ardour/src/Ardour-8.10.0/build'
Generating po/cs.po
Generating po/zh.po
Generating po/de.po
Generating po/ca.po
Generating po/ko.po
Generating po/it.po
Generating po/ru.po
Generating po/fr.po
Generating po/eu.po
Generating po/ja.po
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/ardour-avahi (from build/libs/ardour-avahi)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libptformat.so.0 (to libptformat.so.0.0.0)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libptformat.so (to libptformat.so.0.0.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libptformat.so.0.0.0 (from build/libs/ptformat/libptformat.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/engines/libclearlooks.so (from build/libs/clearlooks-newer/libclearlooks.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/sanityCheck (from build/tools/sanity_check/sanityCheck)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/vamp/libardourvampplugins.so (from build/libs/vamp-plugins/libardourvampplugins.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/vamp/libardourvamppyin.so (to libardourvamppyin.so.0.0.0)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/vamp/libardourvamppyin.so.0 (to libardourvamppyin.so.0.0.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/vamp/libardourvamppyin.so.0.0.0 (from build/libs/vamp-pyin/libardourvamppyin.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libaaf.so (to libaaf.so.0.0.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libaaf.so.0.0.0 (from build/libs/aaf/libaaf.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libaaf.so.0 (to libaaf.so.0.0.0)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libztk.so (to libztk.so.2.14.0)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libztk.so.2 (to libztk.so.2.14.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libztk.so.2.14.0 (from build/libs/tk/ztk/libztk.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libydk-pixbuf.so (to libydk-pixbuf.so.2.31.1)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libydk-pixbuf.so.2 (to libydk-pixbuf.so.2.31.1)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libydk-pixbuf.so.2.31.1 (from build/libs/tk/ydk-pixbuf/libydk-pixbuf.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libydk.so.2.24.23 (from build/libs/tk/ydk/libydk.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libydk.so.2 (to libydk.so.2.24.23)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libydk.so (to libydk.so.2.24.23)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libytk.so.2.24.23 (from build/libs/tk/ytk/libytk.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libytk.so (to libytk.so.2.24.23)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libytk.so.2 (to libytk.so.2.24.23)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libztkmm.so.2.22.7 (from build/libs/tk/ztkmm/libztkmm.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libztkmm.so.2 (to libztkmm.so.2.22.7)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libztkmm.so (to libztkmm.so.2.22.7)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libydkmm.so.2.24.5 (from build/libs/tk/ydkmm/libydkmm.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libydkmm.so.2 (to libydkmm.so.2.24.5)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libydkmm.so (to libydkmm.so.2.24.5)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libytkmm.so (to libytkmm.so.2.24.5)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libytkmm.so.2 (to libytkmm.so.2.24.5)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libytkmm.so.2.24.5 (from build/libs/tk/ytkmm/libytkmm.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libsuil.so.0.10.8 (from build/libs/tk/suil/libsuil.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libsuil.so (to libsuil.so.0.10.8)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libsuil.so.0 (to libsuil.so.0.10.8)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libsuil_x11_in_gtk2.so (from build/libs/tk/suil/libsuil_x11_in_gtk2.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libpbd.so.4 (to libpbd.so.4.1.0)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libpbd.so (to libpbd.so.4.1.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libpbd.so.4.1.0 (from build/libs/pbd/libpbd.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libmidipp.so.4 (to libmidipp.so.4.1.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libmidipp.so.4.1.0 (from build/libs/midi++2/libmidipp.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libmidipp.so (to libmidipp.so.4.1.0)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libevoral.so.0 (to libevoral.so.0.0.0)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libevoral.so (to libevoral.so.0.0.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libevoral.so.0.0.0 (from build/libs/evoral/libevoral.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libardourcp.so (from build/libs/ctrl-interface/control_protocol/libardourcp.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libardour_midisurface.so (from build/libs/ctrl-interface/midi_surface/libardour_midisurface.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_faderport8.so (from build/libs/surfaces/faderport8/libardour_faderport8.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_generic_midi.so (from build/libs/surfaces/generic_midi/libardour_generic_midi.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_faderport16.so (from build/libs/surfaces/faderport8/libardour_faderport16.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_faderport.so (from build/libs/surfaces/faderport/libardour_faderport.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_faderport2.so (from build/libs/surfaces/faderport8/libardour_faderport2.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_cc121.so (from build/libs/surfaces/cc121/libardour_cc121.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_mcp.so (from build/libs/surfaces/mackie/libardour_mcp.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_ssl_uf8.so (from build/libs/surfaces/mackie/libardour_ssl_uf8.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_us2400.so (from build/libs/surfaces/us2400/libardour_us2400.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_launch_control_xl.so (from build/libs/surfaces/launch_control_xl/libardour_launch_control_xl.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_osc.so (from build/libs/surfaces/osc/libardour_osc.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_console1.so (from build/libs/surfaces/console1/libardour_console1.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_launchpad_pro.so (from build/libs/surfaces/launchpad_pro/libardour_launchpad_pro.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_launchpad_mini.so (from build/libs/surfaces/launchpad_x/libardour_launchpad_mini.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_launchpad_x.so (from build/libs/surfaces/launchpad_x/libardour_launchpad_x.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_launchkey_4.so (from build/libs/surfaces/launchkey_4/libardour_launchkey_4.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_push2.so (from build/libs/surfaces/push2/libardour_push2.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/surfaces/libardour_contourdesign.so (from build/libs/surfaces/contourdesign/libardour_contourdesign.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/panners/libpan1in2out.so (from build/libs/panners/1in2out/libpan1in2out.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/panners/libpan2in2out.so (from build/libs/panners/2in2out/libpan2in2out.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/panners/libpanvbap.so (from build/libs/panners/vbap/libpanvbap.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/panners/libpanbalance.so (from build/libs/panners/stereobalance/libpanbalance.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/backends/libpulseaudio_backend.so (from build/libs/backends/pulseaudio/libpulseaudio_backend.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/backends/libjack_audiobackend.so (from build/libs/backends/jack/libjack_audiobackend.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/backends/libalsa_audiobackend.so (from build/libs/backends/alsa/libalsa_audiobackend.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/backends/libdummy_audiobackend.so (from build/libs/backends/dummy/libdummy_audiobackend.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libtemporal.so.0 (to libtemporal.so.0.0.0)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libtemporal.so (to libtemporal.so.0.0.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libtemporal.so.0.0.0 (from build/libs/temporal/libtemporal.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libardour.so.3 (to libardour.so.3.0.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libardour.so.3.0.0 (from build/libs/ardour/libardour.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libardour.so (to libardour.so.3.0.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libgtkmm2ext.so.0.8.3 (from build/libs/gtkmm2ext/libgtkmm2ext.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libgtkmm2ext.so (to libgtkmm2ext.so.0.8.3)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libgtkmm2ext.so.0 (to libgtkmm2ext.so.0.8.3)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libaudiographer.so.0.0.0 (from build/libs/audiographer/libaudiographer.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libaudiographer.so (to libaudiographer.so.0.0.0)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libaudiographer.so.0 (to libaudiographer.so.0.0.0)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libcanvas.so (to libcanvas.so.0.0.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libcanvas.so.0.0.0 (from build/libs/canvas/libcanvas.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libcanvas.so.0 (to libcanvas.so.0.0.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libwidgets.so.0.0.0 (from build/libs/widgets/libwidgets.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libwidgets.so.0 (to libwidgets.so.0.0.0)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libwidgets.so (to libwidgets.so.0.0.0)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libwaveview.so (to libwaveview.so.0.0.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libwaveview.so.0.0.0 (from build/libs/waveview/libwaveview.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libwaveview.so.0 (to libwaveview.so.0.0.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/reasonablesynth.lv2/manifest.ttl (from build/libs/LV2/reasonablesynth.lv2/manifest.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/reasonablesynth.lv2/reasonablesynth.so (from build/libs/LV2/reasonablesynth.lv2/reasonablesynth.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/reasonablesynth.lv2/reasonablesynth.ttl (from build/libs/LV2/reasonablesynth.lv2/reasonablesynth.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-comp.lv2/manifest.ttl (from build/libs/LV2/a-comp.lv2/manifest.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-comp.lv2/presets.ttl (from build/libs/LV2/a-comp.lv2/presets.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-comp.lv2/a-comp.ttl (from build/libs/LV2/a-comp.lv2/a-comp.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-comp.lv2/a-comp.so (from build/libs/LV2/a-comp.lv2/a-comp.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-comp.lv2/a-comp#stereo.ttl (from build/libs/LV2/a-comp.lv2/a-comp#stereo.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-exp.lv2/manifest.ttl (from build/libs/LV2/a-exp.lv2/manifest.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-exp.lv2/a-exp.ttl (from build/libs/LV2/a-exp.lv2/a-exp.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-exp.lv2/a-exp#stereo.ttl (from build/libs/LV2/a-exp.lv2/a-exp#stereo.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-exp.lv2/a-exp.so (from build/libs/LV2/a-exp.lv2/a-exp.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-delay.lv2/manifest.ttl (from build/libs/LV2/a-delay.lv2/manifest.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-delay.lv2/a-delay.ttl (from build/libs/LV2/a-delay.lv2/a-delay.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-delay.lv2/presets.ttl (from build/libs/LV2/a-delay.lv2/presets.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-delay.lv2/a-delay.so (from build/libs/LV2/a-delay.lv2/a-delay.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-eq.lv2/manifest.ttl (from build/libs/LV2/a-eq.lv2/manifest.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-eq.lv2/a-eq.ttl (from build/libs/LV2/a-eq.lv2/a-eq.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-eq.lv2/a-eq.so (from build/libs/LV2/a-eq.lv2/a-eq.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-reverb.lv2/a-reverb.ttl (from build/libs/LV2/a-reverb.lv2/a-reverb.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-reverb.lv2/manifest.ttl (from build/libs/LV2/a-reverb.lv2/manifest.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-reverb.lv2/a-reverb.so (from build/libs/LV2/a-reverb.lv2/a-reverb.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-fluidsynth.lv2/manifest.ttl (from build/libs/LV2/a-fluidsynth.lv2/manifest.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-fluidsynth.lv2/a-fluidsynth.ttl (from build/libs/LV2/a-fluidsynth.lv2/a-fluidsynth.ttl)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/LV2/a-fluidsynth.lv2/a-fluidsynth.so (from build/libs/LV2/a-fluidsynth.lv2/a-fluidsynth.so)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/media/.daw-meta.xml (from share/media/.daw-meta.xml)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/CD + Ogg_Vorbis + FLAC.preset (from share/export/CD + Ogg_Vorbis + FLAC.preset)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/media/click-120bpm.flac (from share/media/click-120bpm.flac)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/CD only.preset (from share/export/CD only.preset)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/media/click.mid (from share/media/click.mid)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/FLAC.preset (from share/export/FLAC.preset)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/Ogg_Vorbis + FLAC.preset (from share/export/Ogg_Vorbis + FLAC.preset)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/Ogg_Vorbis.preset (from share/export/Ogg_Vorbis.preset)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/Streaming.preset (from share/export/Streaming.preset)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/mp3.preset (from share/export/mp3.preset)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/wav.preset (from share/export/wav.preset)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/Amazon Music.format (from share/export/Amazon Music.format)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/Apple Music.format (from share/export/Apple Music.format)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/BWAV 24bit Export.format (from share/export/BWAV 24bit Export.format)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/BWAV 32float Export.format (from share/export/BWAV 32float Export.format)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/CD (Red Book).format (from share/export/CD (Red Book).format)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/FLAC 24 bit.format (from share/export/FLAC 24 bit.format)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/MP3 (extreme).format (from share/export/MP3 (extreme).format)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/AKAI_APCmini.map (from share/midi_maps/AKAI_APCmini.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/MP3 (medium).format (from share/export/MP3 (medium).format)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/AKAI_APCmini_mk2.map (from share/midi_maps/AKAI_APCmini_mk2.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/MP3 (standard).format (from share/export/MP3 (standard).format)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/AKAI_MIDIMix_EQ_Mode.map (from share/midi_maps/AKAI_MIDIMix_EQ_Mode.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/Ogg_Vorbis.format (from share/export/Ogg_Vorbis.format)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/AKAI_MIDIMix_Normal_Mode.map (from share/midi_maps/AKAI_MIDIMix_Normal_Mode.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/SSL Nucleus Ardour.profile (from share/mcp/SSL Nucleus Ardour.profile)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/Ring Tone.format (from share/export/Ring Tone.format)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/osc/TTC2.preset (from share/osc/TTC2.preset)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/arturiaMkII.profile (from share/mcp/arturiaMkII.profile)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/AKAI_MPK225_Normal.map (from share/midi_maps/AKAI_MPK225_Normal.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/Soundcloud and Spotify.format (from share/export/Soundcloud and Spotify.format)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/artist_control.device (from share/mcp/artist_control.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/osc/basic-touchosc.preset (from share/osc/basic-touchosc.preset)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/user.profile (from share/mcp/user.profile)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/AKAI_MPK225_Plugins.map (from share/midi_maps/AKAI_MPK225_Plugins.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/WAV (tagged).format (from share/export/WAV (tagged).format)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/artist_mix.device (from share/mcp/artist_mix.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/AKAI_MPK249.map (from share/midi_maps/AKAI_MPK249.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/arturiaMkII.device (from share/mcp/arturiaMkII.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/export/YouTube and Deezer.format (from share/export/YouTube and Deezer.format)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/AKAI_MPK61.map (from share/midi_maps/AKAI_MPK61.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/bcf2000.device (from share/mcp/bcf2000.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/AKAI_MPKmini.map (from share/midi_maps/AKAI_MPKmini.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/cmc.device (from share/mcp/cmc.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/AKAI_MPKmini_mk3.map (from share/midi_maps/AKAI_MPKmini_mk3.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/mc+xt+xt.device (from share/mcp/mc+xt+xt.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/AKAI_MPKminiplus.map (from share/midi_maps/AKAI_MPKminiplus.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/mc+xt.device (from share/mcp/mc+xt.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Alesis_Q49v2.map (from share/midi_maps/Alesis_Q49v2.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/mc.device (from share/mcp/mc.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Alesis_QX25.map (from share/midi_maps/Alesis_QX25.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/mcpro.device (from share/mcp/mcpro.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Alesis_VI25.map (from share/midi_maps/Alesis_VI25.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/mcproxt.device (from share/mcp/mcproxt.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Arturia_KeyLab49.map (from share/midi_maps/Arturia_KeyLab49.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/midikbd.device (from share/mcp/midikbd.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Arturia_MiniLab_3.map (from share/midi_maps/Arturia_MiniLab_3.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/nucleus-platform-midi.device (from share/mcp/nucleus-platform-midi.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/nucleus.device (from share/mcp/nucleus.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Arturia_MiniLab_mkII.map (from share/midi_maps/Arturia_MiniLab_mkII.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/platform_m+.device (from share/mcp/platform_m+.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/DDX3216.map (from share/midi_maps/DDX3216.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/platform_m+_platformx+.device (from share/mcp/platform_m+_platformx+.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Devine_Versakey.map (from share/midi_maps/Devine_Versakey.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/platform_x+_platform_m+.device (from share/mcp/platform_x+_platform_m+.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Donner_StarryPad.map (from share/midi_maps/Donner_StarryPad.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Korg_nanoKONTROL.map (from share/midi_maps/Korg_nanoKONTROL.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/qcon+qex.device (from share/mcp/qcon+qex.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Korg_nanoKONTROL2.map (from share/midi_maps/Korg_nanoKONTROL2.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/qcon.device (from share/mcp/qcon.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/qcon_g2+g2ex.device (from share/mcp/qcon_g2+g2ex.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Korg_nanoKONTROL2_With_Master.map (from share/midi_maps/Korg_nanoKONTROL2_With_Master.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/qcon_g2.device (from share/mcp/qcon_g2.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Korg_nanoKONTROL_Master.map (from share/midi_maps/Korg_nanoKONTROL_Master.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Korg_nanoKONTROL_Studio.map (from share/midi_maps/Korg_nanoKONTROL_Studio.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/qcon_g2ex+g2.device (from share/mcp/qcon_g2ex+g2.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Korg_taktile.map (from share/midi_maps/Korg_taktile.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/qex+qcon.device (from share/mcp/qex+qcon.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/M-Audio_Axiom25.map (from share/midi_maps/M-Audio_Axiom25.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/ruco.device (from share/mcp/ruco.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/ssl-uf8+1.device (from share/mcp/ssl-uf8+1.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/M-Audio_Axiom61.map (from share/midi_maps/M-Audio_Axiom61.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/ssl-uf8+2.device (from share/mcp/ssl-uf8+2.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/M-Audio_Axiom_49_mkII.map (from share/midi_maps/M-Audio_Axiom_49_mkII.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/ssl-uf8+3.device (from share/mcp/ssl-uf8+3.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/M-Audio_Axiom_AIR_Mini_32.map (from share/midi_maps/M-Audio_Axiom_AIR_Mini_32.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/ssl-uf8.device (from share/mcp/ssl-uf8.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/M-Audio_Axiom_Air_25_2015_Model_Transport_Only.map (from share/midi_maps/M-Audio_Axiom_Air_25_2015_Model_Transport_Only.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/two_platform_x+_platform_m+.device (from share/mcp/two_platform_x+_platform_m+.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/M-Audio_Oxygen49.map (from share/midi_maps/M-Audio_Oxygen49.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/x-touch+2x-touch-compact.device (from share/mcp/x-touch+2x-touch-compact.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/M-Audio_Oxygen61v3.map (from share/midi_maps/M-Audio_Oxygen61v3.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/x-touch+x-touch-compact.device (from share/mcp/x-touch+x-touch-compact.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Nektar_Panorama.map (from share/midi_maps/Nektar_Panorama.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/x-touch-compact.device (from share/mcp/x-touch-compact.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Novation Impulse 49.map (from share/midi_maps/Novation Impulse 49.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/x-touch-mini.device (from share/mcp/x-touch-mini.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Novation_Impulse61.map (from share/midi_maps/Novation_Impulse61.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/x-touch-one.device (from share/mcp/x-touch-one.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Novation_LaunchControl_XL.map (from share/midi_maps/Novation_LaunchControl_XL.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/x-touch.device (from share/mcp/x-touch.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Novation_LaunchKey25.map (from share/midi_maps/Novation_LaunchKey25.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/xt+mc+xt.device (from share/mcp/xt+mc+xt.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Novation_LaunchKey49.map (from share/midi_maps/Novation_LaunchKey49.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/xt+mc.device (from share/mcp/xt+mc.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Roland_A-30.map (from share/midi_maps/Roland_A-30.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Roland_SI-24.map (from share/midi_maps/Roland_SI-24.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/mcp/xt+xt+mc.device (from share/mcp/xt+xt+mc.device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Roland_V_Studio_20.map (from share/midi_maps/Roland_V_Studio_20.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/Yamaha_KX25.map (from share/midi_maps/Yamaha_KX25.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/akai-mpd-32.map (from share/midi_maps/akai-mpd-32.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/bcf2000.map (from share/midi_maps/bcf2000.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/bcf2000_mackie.map (from share/midi_maps/bcf2000_mackie.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/donnerdmk25.map (from share/midi_maps/donnerdmk25.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/m-audio-oxygen61v3.map (from share/midi_maps/m-audio-oxygen61v3.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/m-audio_oxygen25.map (from share/midi_maps/m-audio_oxygen25.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/m-audio_oxygen25_3rdGen.map (from share/midi_maps/m-audio_oxygen25_3rdGen.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/m-audio_oxygen8v2.map (from share/midi_maps/m-audio_oxygen8v2.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/midikb_wiimote.map (from share/midi_maps/midikb_wiimote.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/midi_maps/xboard-61.map (from share/midi_maps/xboard-61.map)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/plugin_metadata/plugin_statuses (from share/plugin_metadata/plugin_statuses)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/plugin_metadata/plugin_tags (from share/plugin_metadata/plugin_tags)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/ART_Multiverb_Alpha_2_0.midnam (from share/patchfiles/ART_Multiverb_Alpha_2_0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Access_Virus_A.midnam (from share/patchfiles/Access_Virus_A.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Access_Virus_B_KB_Indigo.midnam (from share/patchfiles/Access_Virus_B_KB_Indigo.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/HiAndLowPass.lua (from share/scripts/HiAndLowPass.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Access_Virus_Rack.midnam (from share/patchfiles/Access_Virus_Rack.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/a-noise.lua (from share/scripts/a-noise.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/a_dtmf_phone.lua (from share/scripts/a_dtmf_phone.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_DM5.midnam (from share/patchfiles/Alesis_DM5.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/a_mute.lua (from share/scripts/a_mute.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_MIDIVerb_4.midnam (from share/patchfiles/Alesis_MIDIVerb_4.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/a_slow_mute.lua (from share/scripts/a_slow_mute.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_MIDIVerb_II.midnam (from share/patchfiles/Alesis_MIDIVerb_II.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/a_stereo_routing.lua (from share/scripts/a_stereo_routing.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_MIDIVerb_III.midnam (from share/patchfiles/Alesis_MIDIVerb_III.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/ab_switch.lua (from share/scripts/ab_switch.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_MicroVerb4.midnam (from share/patchfiles/Alesis_MicroVerb4.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/access_action.lua (from share/scripts/access_action.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_NanoBass.midnam (from share/patchfiles/Alesis_NanoBass.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/add_MIDI_monitor.lua (from share/scripts/add_MIDI_monitor.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_NanoPiano.midnam (from share/patchfiles/Alesis_NanoPiano.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/add_audio_track.lua (from share/scripts/add_audio_track.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_NanoSynth.midnam (from share/patchfiles/Alesis_NanoSynth.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/add_cdmarker.lua (from share/scripts/add_cdmarker.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/addscopes.lua (from share/scripts/addscopes.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_Q20.midnam (from share/patchfiles/Alesis_Q20.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/amp5.lua (from share/scripts/amp5.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_QS6.midnam (from share/patchfiles/Alesis_QS6.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/avldrums_midimap.lua (from share/scripts/avldrums_midimap.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_QS6_1.midnam (from share/patchfiles/Alesis_QS6_1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/barlow_arp.lua (from share/scripts/barlow_arp.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_QS78.midnam (from share/patchfiles/Alesis_QS78.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/bounce_replace.lua (from share/scripts/bounce_replace.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_QS7_1_8_1.midnam (from share/patchfiles/Alesis_QS7_1_8_1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/bypass_all_plugins.lua (from share/scripts/bypass_all_plugins.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_Q_Cards.midnam (from share/patchfiles/Alesis_Q_Cards.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/collapse_playlists.lua (from share/scripts/collapse_playlists.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_QuadraSynth.midnam (from share/patchfiles/Alesis_QuadraSynth.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/create_drum_tracks.lua (from share/scripts/create_drum_tracks.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_QuadraSynth_Plus.midnam (from share/patchfiles/Alesis_QuadraSynth_Plus.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/delete_xrun_markers.lua (from share/scripts/delete_xrun_markers.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_Quadraverb_2.midnam (from share/patchfiles/Alesis_Quadraverb_2.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/dm10studio.lua (from share/scripts/dm10studio.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_Quadraverb_Plus.midnam (from share/patchfiles/Alesis_Quadraverb_Plus.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/duplicate_to_grid.lua (from share/scripts/duplicate_to_grid.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_S4.midnam (from share/patchfiles/Alesis_S4.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/export_mp4chaps.lua (from share/scripts/export_mp4chaps.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_S4_Plus.midnam (from share/patchfiles/Alesis_S4_Plus.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/jump_to_marker.lua (from share/scripts/jump_to_marker.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Alesis_SR_16.midnam (from share/patchfiles/Alesis_SR_16.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/lfo_automation.lua (from share/scripts/lfo_automation.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Bitheadz_Retro_AS_1.midnam (from share/patchfiles/Bitheadz_Retro_AS_1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/list_plugins.lua (from share/scripts/list_plugins.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/ltc_reader.lua (from share/scripts/ltc_reader.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Casio_CZ_1.midnam (from share/patchfiles/Casio_CZ_1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/metering_point.lua (from share/scripts/metering_point.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Clavia_Nord.midnam (from share/patchfiles/Clavia_Nord.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/midi_cc_to_automation.lua (from share/scripts/midi_cc_to_automation.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Clavia_Nord_Lead_II.midnam (from share/patchfiles/Clavia_Nord_Lead_II.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/midi_remap.lua (from share/scripts/midi_remap.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Clavia_Nord_Rack_3.midnam (from share/patchfiles/Clavia_Nord_Rack_3.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/midimon.lua (from share/scripts/midimon.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/DSI_Evolver.midnam (from share/patchfiles/DSI_Evolver.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/mixer_screenshot.lua (from share/scripts/mixer_screenshot.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/DSI_Mopho.midnam (from share/patchfiles/DSI_Mopho.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/mixer_settings_recall.lua (from share/scripts/mixer_settings_recall.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/DSI_Tetra.midnam (from share/patchfiles/DSI_Tetra.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/mixer_settings_store.lua (from share/scripts/mixer_settings_store.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Digidesign_MP1.midnam (from share/patchfiles/Digidesign_MP1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/mute_all_tracks.lua (from share/scripts/mute_all_tracks.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Digitech_DSP128plus.midnam (from share/patchfiles/Digitech_DSP128plus.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/normalize_all_tracks.lua (from share/scripts/normalize_all_tracks.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Digitech_DSP_128.midnam (from share/patchfiles/Digitech_DSP_128.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/notch_bank.lua (from share/scripts/notch_bank.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Digitech_Quad_4.midnam (from share/patchfiles/Digitech_Quad_4.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/periodic_backup.lua (from share/scripts/periodic_backup.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Digitech_S100.midnam (from share/patchfiles/Digitech_S100.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/pitch_to_mts.lua (from share/scripts/pitch_to_mts.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Dynacord_DRP_20X.midnam (from share/patchfiles/Dynacord_DRP_20X.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/post_export_save_hook.lua (from share/scripts/post_export_save_hook.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_01_Generic_Brass.midnam (from share/patchfiles/EW_Hollywood_Brass_01_Generic_Brass.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/preare_record_example.lua (from share/scripts/preare_record_example.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_02_1FH_KS_Sus_Short_C0_A#0.midnam (from share/patchfiles/EW_Hollywood_Brass_02_1FH_KS_Sus_Short_C0_A#0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/raptor_arp.lua (from share/scripts/raptor_arp.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_03_1FH_KS_Effects_C0_A0.midnam (from share/patchfiles/EW_Hollywood_Brass_03_1FH_KS_Effects_C0_A0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/record_now.lua (from share/scripts/record_now.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_04_2FH_KS_Sus_Short_C0_G0.midnam (from share/patchfiles/EW_Hollywood_Brass_04_2FH_KS_Sus_Short_C0_G0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/remove_sysex_from_region.lua (from share/scripts/remove_sysex_from_region.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_05_2FH_KS_Effects_C0_F#0.midnam (from share/patchfiles/EW_Hollywood_Brass_05_2FH_KS_Effects_C0_F#0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/remove_unknown_procs.lua (from share/scripts/remove_unknown_procs.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_06_6FH_KS_Sus_Short_C0_G#0.midnam (from share/patchfiles/EW_Hollywood_Brass_06_6FH_KS_Sus_Short_C0_G#0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/reset_mixer.lua (from share/scripts/reset_mixer.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_07_6FH_KS_Effects_C0_A0.midnam (from share/patchfiles/EW_Hollywood_Brass_07_6FH_KS_Effects_C0_A0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/reverse_midi.lua (from share/scripts/reverse_midi.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_08_1TP_KS_Sus_Short_C0_A0.midnam (from share/patchfiles/EW_Hollywood_Brass_08_1TP_KS_Sus_Short_C0_A0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/rubberband_swing.lua (from share/scripts/rubberband_swing.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_09_1TP_KS_Effects_C0_E0.midnam (from share/patchfiles/EW_Hollywood_Brass_09_1TP_KS_Effects_C0_E0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_chanmap.lua (from share/scripts/s_chanmap.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_10_2TP_KS_Sus_Short_C0_G#0.midnam (from share/patchfiles/EW_Hollywood_Brass_10_2TP_KS_Sus_Short_C0_G#0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_cut_copy_section.lua (from share/scripts/s_cut_copy_section.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_11_2TP_KS_Effects_C0_A0.midnam (from share/patchfiles/EW_Hollywood_Brass_11_2TP_KS_Effects_C0_A0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_ducks.lua (from share/scripts/s_ducks.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_12_3TP_KS_Sus_Short_C0_A#0.midnam (from share/patchfiles/EW_Hollywood_Brass_12_3TP_KS_Sus_Short_C0_A#0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_fader_automation.lua (from share/scripts/s_fader_automation.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_13_3TP_KS_Effects_C0_A0.midnam (from share/patchfiles/EW_Hollywood_Brass_13_3TP_KS_Effects_C0_A0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_foreach_track.lua (from share/scripts/s_foreach_track.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_14_1TB_KS_Sus_Short_C0_G#0.midnam (from share/patchfiles/EW_Hollywood_Brass_14_1TB_KS_Sus_Short_C0_G#0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_group_color.lua (from share/scripts/s_group_color.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_15_1TB_KS_Effects_C0_E0.midnam (from share/patchfiles/EW_Hollywood_Brass_15_1TB_KS_Effects_C0_E0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_import_files.lua (from share/scripts/s_import_files.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_16_3TB_KS_Sus_Short_C#4_G#4.midnam (from share/patchfiles/EW_Hollywood_Brass_16_3TB_KS_Sus_Short_C#4_G#4.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_plugin_automation.lua (from share/scripts/s_plugin_automation.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_17_3TB_KS_Effects_C#4_F4.midnam (from share/patchfiles/EW_Hollywood_Brass_17_3TB_KS_Effects_C#4_F4.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_plugin_reorder.lua (from share/scripts/s_plugin_reorder.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_18_1CM_KS_Sus_Short_C#3_G3.midnam (from share/patchfiles/EW_Hollywood_Brass_18_1CM_KS_Sus_Short_C#3_G3.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_pluginutils.lua (from share/scripts/s_pluginutils.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_19_1TU_KS_Sus_Short_C3_G#3.midnam (from share/patchfiles/EW_Hollywood_Brass_19_1TU_KS_Sus_Short_C3_G#3.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_portengine.lua (from share/scripts/s_portengine.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_20_1TU_KS_Effects_C3_E3.midnam (from share/patchfiles/EW_Hollywood_Brass_20_1TU_KS_Effects_C3_E3.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_region_gain.lua (from share/scripts/s_region_gain.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_21_LB_KS_Sus_Short_C0_D0.midnam (from share/patchfiles/EW_Hollywood_Brass_21_LB_KS_Sus_Short_C0_D0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_region_gain2.lua (from share/scripts/s_region_gain2.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Brass_22_LB_KS_Effects_C3_B3.midnam (from share/patchfiles/EW_Hollywood_Brass_22_LB_KS_Effects_C3_B3.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_region_gain_curve.lua (from share/scripts/s_region_gain_curve.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Harp_01_Generic_Harp.midnam (from share/patchfiles/EW_Hollywood_Harp_01_Generic_Harp.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_replaceplugin.lua (from share/scripts/s_replaceplugin.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Harp_02_Harp_KS_Master_C0_G#0.midnam (from share/patchfiles/EW_Hollywood_Harp_02_Harp_KS_Master_C0_G#0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/button.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/button.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_sections.lua (from share/scripts/s_sections.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Percussion_01_Generic_Percussion.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Percussion_01_Generic_Percussion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/buttonarray.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/buttonarray.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_selection.lua (from share/scripts/s_selection.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Percussion_02_Timpani_Flt_KS.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Percussion_02_Timpani_Flt_KS.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/chart.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/chart.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_set_region_fades.lua (from share/scripts/s_set_region_fades.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Percussion_03_Timpani_Hrd_KS.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Percussion_03_Timpani_Hrd_KS.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/circular.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/circular.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_showhide_track.lua (from share/scripts/s_showhide_track.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_01_Generic_Woodwinds.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_01_Generic_Woodwinds.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_tempo_map.lua (from share/scripts/s_tempo_map.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/clock.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/clock.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_02_PF_KS_Sus_Short_C0_C1.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_02_PF_KS_Sus_Short_C0_C1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_thin_automation.lua (from share/scripts/s_thin_automation.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/colorpicker.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/colorpicker.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_03_PF_KS_Runs_FX_C0_G0.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_03_PF_KS_Runs_FX_C0_G0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_timecode.lua (from share/scripts/s_timecode.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/colorpickerdialog.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/colorpickerdialog.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_04_FL_KS_Sus_Short_C0_C#1.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_04_FL_KS_Sus_Short_C0_C#1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_track_props.lua (from share/scripts/s_track_props.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/container.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/container.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_05_FL_KS_Runs_FX_C0_G0.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_05_FL_KS_Runs_FX_C0_G0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_vamp_plugin_index.lua (from share/scripts/s_vamp_plugin_index.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_06_FL2_KS_Sus_Short_C0_C#1.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_06_FL2_KS_Sus_Short_C0_C#1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/crossover.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/crossover.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/s_whoami.lua (from share/scripts/s_whoami.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_07_FL2_KS_Runs_FX_C0_G0.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_07_FL2_KS_Runs_FX_C0_G0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/dialog.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/dialog.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/scl_to_mts.lua (from share/scripts/scl_to_mts.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_08_AF_KS_Sus_Short_C0_F#0.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_08_AF_KS_Sus_Short_C0_F#0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/dynamics.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/dynamics.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/scope.lua (from share/scripts/scope.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_09_BF_KS_Sus_Short_C0_E0.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_09_BF_KS_Sus_Short_C0_E0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/expander.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/expander.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/select_every_2nd_region.lua (from share/scripts/select_every_2nd_region.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_10_OB_KS_Sus_Short_C0_A#0.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_10_OB_KS_Sus_Short_C0_A#0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/fader.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/fader.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/select_regions_at_playhead.lua (from share/scripts/select_regions_at_playhead.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_11_OB_KS_Runs_FX_C0_G0.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_11_OB_KS_Runs_FX_C0_G0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/frame.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/frame.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_12_EH_KS_Sus_Short_C0_A#0.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_12_EH_KS_Sus_Short_C0_A#0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/send_to_bus.lua (from share/scripts/send_to_bus.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/frequencyresponse.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/frequencyresponse.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_13_CL_KS_Sus_Short_C0_A#0.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_13_CL_KS_Sus_Short_C0_A#0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/session_template_advanced.lua (from share/scripts/session_template_advanced.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/gauge.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/gauge.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_14_CL_KS_Runs_FX_C0_G0.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_14_CL_KS_Runs_FX_C0_G0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/session_template_record.lua (from share/scripts/session_template_record.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/globalcursor.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/globalcursor.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_15_BC_KS_Sus_Short_C0_A0.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_15_BC_KS_Sus_Short_C0_A0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/set_automation_mode.lua (from share/scripts/set_automation_mode.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/graph.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/graph.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_16_BS_KS_Sus_Short_C0_G#0.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_16_BS_KS_Sus_Short_C0_G#0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/simple_arp.lua (from share/scripts/simple_arp.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/grid.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/grid.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_17_BS_KS_Runs_FX_C0_G0.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_17_BS_KS_Runs_FX_C0_G0.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/singen.lua (from share/scripts/singen.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/icon.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/icon.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Orchestral_Woodwinds_18_CB_KS_Sus_Short_C3_G#3.midnam (from share/patchfiles/EW_Hollywood_Orchestral_Woodwinds_18_CB_KS_Sus_Short_C3_G#3.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/spectrogram.lua (from share/scripts/spectrogram.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/ardour-8.10.0 (from build/gtk2_ardour/ardour-8.10.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/knob.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/knob.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/bin/ardour8 (from build/gtk2_ardour/ardour8)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/etc/ardour8/clearlooks.rc (from build/gtk2_ardour/clearlooks.rc)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/split_all_markers.lua (from share/scripts/split_all_markers.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/etc/ardour8/clearlooks.ardoursans.rc (from build/gtk2_ardour/clearlooks.ardoursans.rc)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/label.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/label.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_01_Generic_Strings.midnam (from share/patchfiles/EW_Hollywood_Strings_01_Generic_Strings.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/etc/ardour8/default_ui_config (from build/gtk2_ardour/default_ui_config)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/etc/ardour8/ardour.menus (from build/gtk2_ardour/ardour.menus)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/levelmeter.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/levelmeter.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/applications/ardour8.desktop (from build/gtk2_ardour/ardour8.desktop)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/stop_at_marker.lua (from share/scripts/stop_at_marker.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/mime/packages/ardour.xml (from build/gtk2_ardour/ardour.xml)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/appdata/ardour8.appdata.xml (from build/gtk2_ardour/ardour8.appdata.xml)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_02_1st_Violins_Sus_KS_C0_F#0_Ni.midnam (from share/patchfiles/EW_Hollywood_Strings_02_1st_Violins_Sus_KS_C0_F#0_Ni.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/meterbase.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/meterbase.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/icons/hicolor/16x16/apps/ardour8.png (from gtk2_ardour/resources/Ardour-icon_16px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/icons/hicolor/22x22/apps/ardour8.png (from gtk2_ardour/resources/Ardour-icon_22px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/icons/hicolor/32x32/apps/ardour8.png (from gtk2_ardour/resources/Ardour-icon_32px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/icons/hicolor/48x48/apps/ardour8.png (from gtk2_ardour/resources/Ardour-icon_48px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/store_recall_mixer.lua (from share/scripts/store_recall_mixer.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/icons/hicolor/256x256/apps/ardour8.png (from gtk2_ardour/resources/Ardour-icon_256px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/multimeter.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/multimeter.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/etc/ardour8/ardour.keys (from build/gtk2_ardour/ardour.keys)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/icons/hicolor/512x512/apps/ardour8.png (from gtk2_ardour/resources/Ardour-icon_512px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_03_1st_Violins_Sus_KS_C0_F#0_Ni_DIV_A.midnam (from share/patchfiles/EW_Hollywood_Strings_03_1st_Violins_Sus_KS_C0_F#0_Ni_DIV_A.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/surround_to_stereo.lua (from share/scripts/surround_to_stereo.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/notification.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/notification.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_04_1st_Violins_Sus_KS_C0_F#0_Ni_DIV_B.midnam (from share/patchfiles/EW_Hollywood_Strings_04_1st_Violins_Sus_KS_C0_F#0_Ni_DIV_B.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/tomsloop.lua (from share/scripts/tomsloop.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/notifications.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/notifications.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/track_organizer.lua (from share/scripts/track_organizer.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_05_2nd_Violins_Sus_KS_C0_G#0_Ni.midnam (from share/patchfiles/EW_Hollywood_Strings_05_2nd_Violins_Sus_KS_C0_G#0_Ni.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/pager.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/pager.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_06_2nd_Violins_Sus_KS_C0_G#0_Ni_DIV_A.midnam (from share/patchfiles/EW_Hollywood_Strings_06_2nd_Violins_Sus_KS_C0_G#0_Ni_DIV_A.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/trigger_mixer_scene.lua (from share/scripts/trigger_mixer_scene.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/responsehandle.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/responsehandle.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_07_2nd_Violins_Sus_KS_C0_G#0_Ni_DIV_B.midnam (from share/patchfiles/EW_Hollywood_Strings_07_2nd_Violins_Sus_KS_C0_G#0_Ni_DIV_B.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/tx_raw_midi_from_file.lua (from share/scripts/tx_raw_midi_from_file.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/responsehandler.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/responsehandler.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_08_Violas_Sus_KS_C0_G0_Ni.midnam (from share/patchfiles/EW_Hollywood_Strings_08_Violas_Sus_KS_C0_G0_Ni.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/vamp_audio_to_midi.lua (from share/scripts/vamp_audio_to_midi.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/root.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/root.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_09_Violas_Sus_KS_C0_G0_Ni_DIV_A.midnam (from share/patchfiles/EW_Hollywood_Strings_09_Violas_Sus_KS_C0_G0_Ni_DIV_A.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/voice_activate.lua (from share/scripts/voice_activate.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_10_Violas_Sus_KS_C0_G0_Ni_DIV_B.midnam (from share/patchfiles/EW_Hollywood_Strings_10_Violas_Sus_KS_C0_G0_Ni_DIV_B.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/scale.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/scale.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/scripts/x-fade.lua (from share/scripts/x-fade.lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_11_Celli_Sus_KS_C0_F#0_Ni.midnam (from share/patchfiles/EW_Hollywood_Strings_11_Celli_Sus_KS_C0_F#0_Ni.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/select.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/select.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_12_Celli_Sus_KS_C0_F#0_Ni_DIV_A.midnam (from share/patchfiles/EW_Hollywood_Strings_12_Celli_Sus_KS_C0_F#0_Ni_DIV_A.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/slider.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/slider.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_13_Celli_Sus_KS_C0_F#0_Ni_DIV_B.midnam (from share/patchfiles/EW_Hollywood_Strings_13_Celli_Sus_KS_C0_F#0_Ni_DIV_B.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/state.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/state.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_14_Basses_Sus_KS_C4_F4_Ni.midnam (from share/patchfiles/EW_Hollywood_Strings_14_Basses_Sus_KS_C4_F4_Ni.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/toggle.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/toggle.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_15_Basses_Sus_KS_C4_F4_Ni_DIV_A.midnam (from share/patchfiles/EW_Hollywood_Strings_15_Basses_Sus_KS_C4_F4_Ni_DIV_A.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/tooltip.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/tooltip.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Hollywood_Strings_16_Basses_Sus_KS_C4_F4_Ni_DIV_B.midnam (from share/patchfiles/EW_Hollywood_Strings_16_Basses_Sus_KS_C4_F4_Ni_DIV_B.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/value.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/value.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Pianos_01_Bechstein_280_copy.midnam (from share/patchfiles/EW_Pianos_01_Bechstein_280_copy.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/valuebutton.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/valuebutton.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Pianos_02_Bosendorfer_290.midnam (from share/patchfiles/EW_Pianos_02_Bosendorfer_290.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Pianos_03_Steinway_D.midnam (from share/patchfiles/EW_Pianos_03_Steinway_D.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/valueknob.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/valueknob.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/EW_Pianos_04_Yamaha_C7.midnam (from share/patchfiles/EW_Pianos_04_Yamaha_C7.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/window.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/css/window.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Mo_Phatt.midnam (from share/patchfiles/E_mu_Mo_Phatt.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/background.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/background.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Orbit_3.midnam (from share/patchfiles/E_mu_Orbit_3.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/chart/background.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/chart/background.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Proteus_2000.midnam (from share/patchfiles/E_mu_Proteus_2000.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/chart/background.xcf (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/chart/background.xcf)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_HALO.midnam (from share/patchfiles/E_mu_Systems_HALO.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_MK_6.midnam (from share/patchfiles/E_mu_Systems_MK_6.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/background_horizontal_center.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/background_horizontal_center.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_MPS.midnam (from share/patchfiles/E_mu_Systems_MPS.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/background_horizontal_left.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/background_horizontal_left.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/ArdourMono.ttf (from gtk2_ardour/ArdourMono.ttf)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_MPS_Orch.midnam (from share/patchfiles/E_mu_Systems_MPS_Orch.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/background_horizontal_right.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/background_horizontal_right.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/ArdourSans.ttf (from gtk2_ardour/ArdourSans.ttf)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_MP_7.midnam (from share/patchfiles/E_mu_Systems_MP_7.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/background_vertical_bottom.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/background_vertical_bottom.png)
- install /home/buildozer/aports/community/ardour/pkg/ardour/usr/etc/ardour8/default_ui_config (from build/gtk2_ardour/default_ui_config)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/resources/Ardour-icon_16px.png (from gtk2_ardour/resources/Ardour-icon_16px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Mo_Phatt.midnam (from share/patchfiles/E_mu_Systems_Mo_Phatt.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/background_vertical_center.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/background_vertical_center.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/resources/Ardour-icon_22px.png (from gtk2_ardour/resources/Ardour-icon_22px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Morpheus.midnam (from share/patchfiles/E_mu_Systems_Morpheus.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/background_vertical_top.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/background_vertical_top.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Orbit.midnam (from share/patchfiles/E_mu_Systems_Orbit.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/resources/Ardour-icon_256px.png (from gtk2_ardour/resources/Ardour-icon_256px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/hardour-8.10.0 (from build/headless/hardour-8.10.0)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/handle_horizontal.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/handle_horizontal.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/bin/ardour8-lua (from build/luasession/ardour8-lua)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Orbit_V2.midnam (from share/patchfiles/E_mu_Systems_Orbit_V2.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/resources/Ardour-icon_32px.png (from gtk2_ardour/resources/Ardour-icon_32px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/themes/adwaita_dark-ardour.colors (from gtk2_ardour/themes/adwaita_dark-ardour.colors)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/luasession (from build/luasession/luasession)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/bin/ardour8-copy-mixer (to /usr/lib/ardour8/utils/ardour-util.sh)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/utils/ardour8-copy-mixer (from build/session_utils/ardour8-copy-mixer)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/handle_horizontal_warn.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/handle_horizontal_warn.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Audity.midnam (from share/patchfiles/E_mu_Systems_P2000_Audity.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/utils/ardour8-export (from build/session_utils/ardour8-export)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/resources/Ardour-icon_48px.png (from gtk2_ardour/resources/Ardour-icon_48px.png)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/bin/ardour8-export (to /usr/lib/ardour8/utils/ardour-util.sh)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/utils/ardour8-new_empty_session (from build/session_utils/ardour8-new_empty_session)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/themes/blueberry_milk-ardour.colors (from gtk2_ardour/themes/blueberry_milk-ardour.colors)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/act-disabled.png (from gtk2_ardour/icons/act-disabled.png)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/bin/ardour8-new_empty_session (to /usr/lib/ardour8/utils/ardour-util.sh)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/utils/ardour8-new_session (from build/session_utils/ardour8-new_session)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/bin/ardour8-new_session (to /usr/lib/ardour8/utils/ardour-util.sh)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/utils/ardour-util.sh (from build/session_utils/ardour-util.sh)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/resources/Ardour-icon_512px.png (from gtk2_ardour/resources/Ardour-icon_512px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/ardour-vst3-scanner (from build/libs/fst/ardour-vst3-scanner)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Beat_Garden.midnam (from share/patchfiles/E_mu_Systems_P2000_Beat_Garden.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/ardour-vst-scanner (from build/libs/fst/ardour-vst-scanner)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/themes/caineville-ardour.colors (from gtk2_ardour/themes/caineville-ardour.colors)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/add.png (from gtk2_ardour/icons/add.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/ardour-exec-wrapper (from build/libs/vfork/ardour-exec-wrapper)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/handle_vertical.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/handle_vertical.png)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libardouralsautil.so.0 (to libardouralsautil.so.0.0.1)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libardouralsautil.so.0.0.1 (from build/libs/ardouralsautil/libardouralsautil.so)
+ symlink /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/libardouralsautil.so (to libardouralsautil.so.0.0.1)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/resources/Ardour-small-splash.png (from gtk2_ardour/resources/Ardour-small-splash.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/lib/ardour8/ardour-request-device (from build/libs/ardouralsautil/ardour-request-device)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Composer.midnam (from share/patchfiles/E_mu_Systems_P2000_Composer.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/etc/ardour8/system_config (from system_config)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/handle_vertical_warn.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/fader/handle_vertical_warn.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/templates/.stub (from share/templates/.stub)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/anchored_trim_left_cursor.png (from gtk2_ardour/icons/anchored_trim_left_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/themes/captain_light-ardour.colors (from gtk2_ardour/themes/captain_light-ardour.colors)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/resources/Ardour-splash.png (from gtk2_ardour/resources/Ardour-splash.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Definitive_B3.midnam (from share/patchfiles/E_mu_Systems_P2000_Definitive_B3.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/blue_in.jpg (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/blue_in.jpg)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/anchored_trim_right_cursor.png (from gtk2_ardour/icons/anchored_trim_right_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/themes/clear_gray-ardour.colors (from gtk2_ardour/themes/clear_gray-ardour.colors)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Holy_Grail.midnam (from share/patchfiles/E_mu_Systems_P2000_Holy_Grail.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/blue_in.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/blue_in.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/themes/cubasish-ardour.colors (from gtk2_ardour/themes/cubasish-ardour.colors)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/application-x-ardour_16px.png (from gtk2_ardour/icons/application-x-ardour_16px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_MP_7_MROM1.midnam (from share/patchfiles/E_mu_Systems_P2000_MP_7_MROM1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/blue_out.jpg (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/blue_out.jpg)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/themes/dark-ardour.colors (from gtk2_ardour/themes/dark-ardour.colors)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/application-x-ardour_22px.png (from gtk2_ardour/icons/application-x-ardour_22px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Mo_Phatt.midnam (from share/patchfiles/E_mu_Systems_P2000_Mo_Phatt.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/blue_out.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/blue_out.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/themes/diehard3-ardour.colors (from gtk2_ardour/themes/diehard3-ardour.colors)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/application-x-ardour_32px.png (from gtk2_ardour/icons/application-x-ardour_32px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Orchestral1.midnam (from share/patchfiles/E_mu_Systems_P2000_Orchestral1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/grey_in.jpg (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/grey_in.jpg)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/themes/recbox-ardour.colors (from gtk2_ardour/themes/recbox-ardour.colors)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Orchestral2.midnam (from share/patchfiles/E_mu_Systems_P2000_Orchestral2.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/application-x-ardour_48px.png (from gtk2_ardour/icons/application-x-ardour_48px.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/grey_in.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/grey_in.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/themes/unastudia-ardour.colors (from gtk2_ardour/themes/unastudia-ardour.colors)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/ardour-app-icon_osx.png (from gtk2_ardour/icons/ardour-app-icon_osx.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_PS_Orchestra.midnam (from share/patchfiles/E_mu_Systems_P2000_PS_Orchestra.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/grey_out.jpg (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/grey_out.jpg)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/themes/xcolors-ardour.colors (from gtk2_ardour/themes/xcolors-ardour.colors)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Planet_Earth.midnam (from share/patchfiles/E_mu_Systems_P2000_Planet_Earth.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/ardour-app-icon_osx_mask.png (from gtk2_ardour/icons/ardour-app-icon_osx_mask.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/grey_out.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/gradients/grey_out.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/cc121.png (from gtk2_ardour/icons/cc121.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Protean_Drums.midnam (from share/patchfiles/E_mu_Systems_P2000_Protean_Drums.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/knob/background.svg (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/knob/background.svg)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/chord.png (from gtk2_ardour/icons/chord.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Proteus_Pop.midnam (from share/patchfiles/E_mu_Systems_P2000_Proteus_Pop.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/bevel_soft_horizontal.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/bevel_soft_horizontal.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/close.png (from gtk2_ardour/icons/close.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Protozoa.midnam (from share/patchfiles/E_mu_Systems_P2000_Protozoa.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/computer_keyboard.png (from gtk2_ardour/icons/computer_keyboard.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/bevel_soft_vertical.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/bevel_soft_vertical.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Pure_Phat.midnam (from share/patchfiles/E_mu_Systems_P2000_Pure_Phat.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/computer_keyboard_active.png (from gtk2_ardour/icons/computer_keyboard_active.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/bevel_strong_horizontal.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/bevel_strong_horizontal.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Sound_of_the_ZR.midnam (from share/patchfiles/E_mu_Systems_P2000_Sound_of_the_ZR.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/console1.png (from gtk2_ardour/icons/console1.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/bevel_strong_vertical.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/bevel_strong_vertical.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Techno_Synth.midnam (from share/patchfiles/E_mu_Systems_P2000_Techno_Synth.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/grid_soft.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/grid_soft.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/eighthnote.png (from gtk2_ardour/icons/eighthnote.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_Vintage_Collection.midnam (from share/patchfiles/E_mu_Systems_P2000_Vintage_Collection.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/grid_strong.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/grid_strong.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/expand_left_right_cursor.png (from gtk2_ardour/icons/expand_left_right_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_World_Expedition.midnam (from share/patchfiles/E_mu_Systems_P2000_World_Expedition.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/led_horizontal.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/led_horizontal.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_XL_7_ROM.midnam (from share/patchfiles/E_mu_Systems_P2000_XL_7_ROM.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/expand_up_down_cursor.png (from gtk2_ardour/icons/expand_up_down_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/led_vertical.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/led_vertical.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/fade_in_cursor.png (from gtk2_ardour/icons/fade_in_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_XTREM.midnam (from share/patchfiles/E_mu_Systems_P2000_XTREM.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/slim_soft_horizontal.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/slim_soft_horizontal.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_P2000_X_Lead.midnam (from share/patchfiles/E_mu_Systems_P2000_X_Lead.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/fade_out_cursor.png (from gtk2_ardour/icons/fade_out_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/slim_soft_vertical.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/slim_soft_vertical.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_PK_6.midnam (from share/patchfiles/E_mu_Systems_PK_6.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/fadein-constant-power.png (from gtk2_ardour/icons/fadein-constant-power.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/slim_strong_horizontal.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/slim_strong_horizontal.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Planet_Earth.midnam (from share/patchfiles/E_mu_Systems_Planet_Earth.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/fadein-fast-cut.png (from gtk2_ardour/icons/fadein-fast-cut.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/slim_strong_vertical.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/meterbase/slim_strong_vertical.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/fadein-linear.png (from gtk2_ardour/icons/fadein-linear.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Planet_Phatt.midnam (from share/patchfiles/E_mu_Systems_Planet_Phatt.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/select/arrow_down.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/select/arrow_down.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/fadein-slow-cut.png (from gtk2_ardour/icons/fadein-slow-cut.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Procussion.midnam (from share/patchfiles/E_mu_Systems_Procussion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/state/circle.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/state/circle.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/fadein-symmetric.png (from gtk2_ardour/icons/fadein-symmetric.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/state/horizontal.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/state/horizontal.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_ProteusFX.midnam (from share/patchfiles/E_mu_Systems_ProteusFX.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/fadeout-constant-power.png (from gtk2_ardour/icons/fadeout-constant-power.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/state/over.xcf (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/state/over.xcf)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Proteus_1.midnam (from share/patchfiles/E_mu_Systems_Proteus_1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/fadeout-fast-cut.png (from gtk2_ardour/icons/fadeout-fast-cut.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/state/square.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/state/square.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Proteus_1_XR.midnam (from share/patchfiles/E_mu_Systems_Proteus_1_XR.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/fadeout-linear.png (from gtk2_ardour/icons/fadeout-linear.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/state/vertical.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/state/vertical.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Proteus_1_XR_Orch.midnam (from share/patchfiles/E_mu_Systems_Proteus_1_XR_Orch.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/fadeout-slow-cut.png (from gtk2_ardour/icons/fadeout-slow-cut.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Proteus_1_w_Protologic.midnam (from share/patchfiles/E_mu_Systems_Proteus_1_w_Protologic.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/window/background.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/window/background.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/fadeout-symmetric.png (from gtk2_ardour/icons/fadeout-symmetric.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Proteus_2.midnam (from share/patchfiles/E_mu_Systems_Proteus_2.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/window/resize.png (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/images/window/resize.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/faderport-small.png (from gtk2_ardour/icons/faderport-small.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Proteus_2500.midnam (from share/patchfiles/E_mu_Systems_Proteus_2500.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/ardour-toolkit-theme/theme.css (from share/web_surfaces/builtin/mixer/ardour-toolkit-theme/theme.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/faderport16-small.png (from gtk2_ardour/icons/faderport16-small.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/expand.svg (from share/web_surfaces/builtin/mixer/expand.svg)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Proteus_2_XR.midnam (from share/patchfiles/E_mu_Systems_Proteus_2_XR.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/faderport2018-small.png (from gtk2_ardour/icons/faderport2018-small.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/index.html (from share/web_surfaces/builtin/mixer/index.html)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Proteus_3.midnam (from share/patchfiles/E_mu_Systems_Proteus_3.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/faderport8-small.png (from gtk2_ardour/icons/faderport8-small.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/js/main.js (from share/web_surfaces/builtin/mixer/js/main.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Proteus_3_XR.midnam (from share/patchfiles/E_mu_Systems_Proteus_3_XR.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/ferret_02.png (from gtk2_ardour/icons/ferret_02.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/js/scale.js (from share/web_surfaces/builtin/mixer/js/scale.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Proteus_Custom.midnam (from share/patchfiles/E_mu_Systems_Proteus_Custom.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/forte.png (from gtk2_ardour/icons/forte.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/js/tkloader.js (from share/web_surfaces/builtin/mixer/js/tkloader.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_SoundEngine.midnam (from share/patchfiles/E_mu_Systems_SoundEngine.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/fortissimo.png (from gtk2_ardour/icons/fortissimo.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/js/tkwidget.js (from share/web_surfaces/builtin/mixer/js/tkwidget.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/fortississimo.png (from gtk2_ardour/icons/fortississimo.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_UltraProteus.midnam (from share/patchfiles/E_mu_Systems_UltraProteus.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/js/widget.js (from share/web_surfaces/builtin/mixer/js/widget.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/grabber.png (from gtk2_ardour/icons/grabber.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Vintage_Keys.midnam (from share/patchfiles/E_mu_Systems_Vintage_Keys.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/grabber_edit_point.png (from gtk2_ardour/icons/grabber_edit_point.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/main.css (from share/web_surfaces/builtin/mixer/main.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Vintage_Pro.midnam (from share/patchfiles/E_mu_Systems_Vintage_Pro.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/grabber_note.png (from gtk2_ardour/icons/grabber_note.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/manifest.xml (from share/web_surfaces/builtin/mixer/manifest.xml)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_Virtuoso_2000.midnam (from share/patchfiles/E_mu_Systems_Virtuoso_2000.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/halfnote.png (from gtk2_ardour/icons/halfnote.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/COPYING (from share/web_surfaces/builtin/mixer/toolkit/COPYING)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_Systems_XK_6.midnam (from share/patchfiles/E_mu_Systems_XK_6.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/i_beam_cursor.png (from gtk2_ardour/icons/i_beam_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/G.js (from share/web_surfaces/builtin/mixer/toolkit/G.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/E_mu_XL_1.midnam (from share/patchfiles/E_mu_XL_1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/launch_control_xl.png (from gtk2_ardour/icons/launch_control_xl.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/implements/README (from share/web_surfaces/builtin/mixer/toolkit/implements/README)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Ensoniq_ESQ.midnam (from share/patchfiles/Ensoniq_ESQ.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/launchpad-mini.png (from gtk2_ardour/icons/launchpad-mini.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/implements/anchor.js (from share/web_surfaces/builtin/mixer/toolkit/implements/anchor.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Ensoniq_KS_32.midnam (from share/patchfiles/Ensoniq_KS_32.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/launchpad-pro.png (from gtk2_ardour/icons/launchpad-pro.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/implements/audiomath.js (from share/web_surfaces/builtin/mixer/toolkit/implements/audiomath.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Ensoniq_MR_Rack_61_76.midnam (from share/patchfiles/Ensoniq_MR_Rack_61_76.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/launchpad-x.png (from gtk2_ardour/icons/launchpad-x.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/implements/base.js (from share/web_surfaces/builtin/mixer/toolkit/implements/base.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Ensoniq_SD_1.midnam (from share/patchfiles/Ensoniq_SD_1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/lkmk4.png (from gtk2_ardour/icons/lkmk4.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/implements/globalcursor.js (from share/web_surfaces/builtin/mixer/toolkit/implements/globalcursor.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Ensoniq_SQ_1.midnam (from share/patchfiles/Ensoniq_SQ_1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/lkmk4mini.png (from gtk2_ardour/icons/lkmk4mini.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Ensoniq_SQ_1_2_R_.midnam (from share/patchfiles/Ensoniq_SQ_1_2_R_.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/implements/gradient.js (from share/web_surfaces/builtin/mixer/toolkit/implements/gradient.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/mezzforte.png (from gtk2_ardour/icons/mezzforte.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Ensoniq_SQ_1_2_R_32.midnam (from share/patchfiles/Ensoniq_SQ_1_2_R_32.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/implements/notes.js (from share/web_surfaces/builtin/mixer/toolkit/implements/notes.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/mezzoforte.png (from gtk2_ardour/icons/mezzoforte.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/implements/ranged.js (from share/web_surfaces/builtin/mixer/toolkit/implements/ranged.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Ensoniq_SQ_R.midnam (from share/patchfiles/Ensoniq_SQ_R.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/mezzopiano.png (from gtk2_ardour/icons/mezzopiano.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Ensoniq_TS_10_12.midnam (from share/patchfiles/Ensoniq_TS_10_12.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/implements/ranges.js (from share/web_surfaces/builtin/mixer/toolkit/implements/ranges.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/midi-input-active.png (from gtk2_ardour/icons/midi-input-active.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/implements/warning.js (from share/web_surfaces/builtin/mixer/toolkit/implements/warning.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Ensoniq_VFX_SD.midnam (from share/patchfiles/Ensoniq_VFX_SD.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/midi-input-inactive.png (from gtk2_ardour/icons/midi-input-inactive.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/modules/README (from share/web_surfaces/builtin/mixer/toolkit/modules/README)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Ensoniq_ZR.midnam (from share/patchfiles/Ensoniq_ZR.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/midi_socket_small.png (from gtk2_ardour/icons/midi_socket_small.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/modules/circular.js (from share/web_surfaces/builtin/mixer/toolkit/modules/circular.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Eventide_Eclipse.midnam (from share/patchfiles/Eventide_Eclipse.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/midi_sound_notes.png (from gtk2_ardour/icons/midi_sound_notes.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/modules/drag.js (from share/web_surfaces/builtin/mixer/toolkit/modules/drag.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Gotharmoon_deMoon.midnam (from share/patchfiles/Gotharmoon_deMoon.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/midi_tool_erase.png (from gtk2_ardour/icons/midi_tool_erase.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/modules/dragcapture.js (from share/web_surfaces/builtin/mixer/toolkit/modules/dragcapture.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/midi_tool_pencil.png (from gtk2_ardour/icons/midi_tool_pencil.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Johnson_J_Station.midnam (from share/patchfiles/Johnson_J_Station.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/modules/dragvalue.js (from share/web_surfaces/builtin/mixer/toolkit/modules/dragvalue.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/midi_tool_select.png (from gtk2_ardour/icons/midi_tool_select.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Jomox_MBase_11.midnam (from share/patchfiles/Jomox_MBase_11.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/modules/eqband.js (from share/web_surfaces/builtin/mixer/toolkit/modules/eqband.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/move_cursor.png (from gtk2_ardour/icons/move_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/modules/filter.js (from share/web_surfaces/builtin/mixer/toolkit/modules/filter.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kawai_GMega.midnam (from share/patchfiles/Kawai_GMega.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/mute-disabled.png (from gtk2_ardour/icons/mute-disabled.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kawai_K1.midnam (from share/patchfiles/Kawai_K1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/modules/graph.js (from share/web_surfaces/builtin/mixer/toolkit/modules/graph.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/mute-enabled.png (from gtk2_ardour/icons/mute-enabled.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kawai_K11.midnam (from share/patchfiles/Kawai_K11.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/modules/grid.js (from share/web_surfaces/builtin/mixer/toolkit/modules/grid.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/muted-by-others.png (from gtk2_ardour/icons/muted-by-others.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_01R_W.midnam (from share/patchfiles/Korg_01R_W.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/modules/range.js (from share/web_surfaces/builtin/mixer/toolkit/modules/range.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/padlock_closed.png (from gtk2_ardour/icons/padlock_closed.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/modules/resize.js (from share/web_surfaces/builtin/mixer/toolkit/modules/resize.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_01_W(fd).midnam (from share/patchfiles/Korg_01_W(fd).midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/padlock_open.png (from gtk2_ardour/icons/padlock_open.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/modules/responsehandle.js (from share/web_surfaces/builtin/mixer/toolkit/modules/responsehandle.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_01_W_Pro(X).midnam (from share/patchfiles/Korg_01_W_Pro(X).midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/pianissimo.png (from gtk2_ardour/icons/pianissimo.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/modules/scale.js (from share/web_surfaces/builtin/mixer/toolkit/modules/scale.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_03R_W.midnam (from share/patchfiles/Korg_03R_W.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/pianississimo.png (from gtk2_ardour/icons/pianississimo.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/modules/scrollvalue.js (from share/web_surfaces/builtin/mixer/toolkit/modules/scrollvalue.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_05R_W.midnam (from share/patchfiles/Korg_05R_W.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/piano.png (from gtk2_ardour/icons/piano.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/polyfill/raf.js (from share/web_surfaces/builtin/mixer/toolkit/polyfill/raf.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_AG_10.midnam (from share/patchfiles/Korg_AG_10.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/push2-small.png (from gtk2_ardour/icons/push2-small.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/styles/fonts/Toolkit.css (from share/web_surfaces/builtin/mixer/toolkit/styles/fonts/Toolkit.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_AG_3.midnam (from share/patchfiles/Korg_AG_3.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/quarternote.png (from gtk2_ardour/icons/quarternote.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/styles/fonts/Toolkit.css.in (from share/web_surfaces/builtin/mixer/toolkit/styles/fonts/Toolkit.css.in)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_CX3.midnam (from share/patchfiles/Korg_CX3.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/rec-enabled.png (from gtk2_ardour/icons/rec-enabled.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/styles/fonts/Toolkit.html (from share/web_surfaces/builtin/mixer/toolkit/styles/fonts/Toolkit.html)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_C_15_25.midnam (from share/patchfiles/Korg_C_15_25.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/rec-in-progress.png (from gtk2_ardour/icons/rec-in-progress.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/styles/fonts/Toolkit.html.in (from share/web_surfaces/builtin/mixer/toolkit/styles/fonts/Toolkit.html.in)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_C_303_505.midnam (from share/patchfiles/Korg_C_303_505.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/rec-safe-disabled.png (from gtk2_ardour/icons/rec-safe-disabled.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/styles/fonts/Toolkit.svg (from share/web_surfaces/builtin/mixer/toolkit/styles/fonts/Toolkit.svg)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_DW_8000.midnam (from share/patchfiles/Korg_DW_8000.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/rec-safe-enabled.png (from gtk2_ardour/icons/rec-safe-enabled.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/styles/fonts/Toolkit.ttf (from share/web_surfaces/builtin/mixer/toolkit/styles/fonts/Toolkit.ttf)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/record-normal-disabled.png (from gtk2_ardour/icons/record-normal-disabled.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_ER_1.midnam (from share/patchfiles/Korg_ER_1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/record-normal-enabled.png (from gtk2_ardour/icons/record-normal-enabled.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/styles/toolkit.css (from share/web_surfaces/builtin/mixer/toolkit/styles/toolkit.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_EX_8000.midnam (from share/patchfiles/Korg_EX_8000.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/record-normal-in-progress.png (from gtk2_ardour/icons/record-normal-in-progress.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Karma.midnam (from share/patchfiles/Korg_Karma.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/toolkit.js (from share/web_surfaces/builtin/mixer/toolkit/toolkit.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/record-step.png (from gtk2_ardour/icons/record-step.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Kross_2.midnam (from share/patchfiles/Korg_Kross_2.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/README (from share/web_surfaces/builtin/mixer/toolkit/widgets/README)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/record_disabled_grey.png (from gtk2_ardour/icons/record_disabled_grey.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_M1(R).midnam (from share/patchfiles/Korg_M1(R).midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/button.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/button.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/record_normal_red.png (from gtk2_ardour/icons/record_normal_red.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_M3R.midnam (from share/patchfiles/Korg_M3R.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/buttonarray.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/buttonarray.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/record_tape_red.png (from gtk2_ardour/icons/record_tape_red.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_MS2000R.midnam (from share/patchfiles/Korg_MS2000R.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/chart.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/chart.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/resize_bottom_cursor.png (from gtk2_ardour/icons/resize_bottom_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_MicroKORG.midnam (from share/patchfiles/Korg_MicroKORG.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/clock.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/clock.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/resize_bottom_left_cursor.png (from gtk2_ardour/icons/resize_bottom_left_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_N1_N5.midnam (from share/patchfiles/Korg_N1_N5.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/colorpicker.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/colorpicker.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/resize_bottom_right_cursor.png (from gtk2_ardour/icons/resize_bottom_right_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/resize_left_cursor.png (from gtk2_ardour/icons/resize_left_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/colorpickerdialog.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/colorpickerdialog.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_N264.midnam (from share/patchfiles/Korg_N264.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/resize_right_cursor.png (from gtk2_ardour/icons/resize_right_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/colors.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/colors.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_N364.midnam (from share/patchfiles/Korg_N364.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/resize_top_cursor.png (from gtk2_ardour/icons/resize_top_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/confirmbutton.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/confirmbutton.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/resize_top_left_cursor.png (from gtk2_ardour/icons/resize_top_left_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_NS5R.midnam (from share/patchfiles/Korg_NS5R.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/container.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/container.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/resize_top_right_cursor.png (from gtk2_ardour/icons/resize_top_right_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/crossover.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/crossover.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_NX5R.midnam (from share/patchfiles/Korg_NX5R.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/sae.png (from gtk2_ardour/icons/sae.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/dialog.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/dialog.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Prophecy.midnam (from share/patchfiles/Korg_Prophecy.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/scissors.png (from gtk2_ardour/icons/scissors.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/dynamics.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/dynamics.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Radias.midnam (from share/patchfiles/Korg_Radias.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/search.png (from gtk2_ardour/icons/search.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_T1.midnam (from share/patchfiles/Korg_T1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/equalizer.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/equalizer.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/sixteenthnote.png (from gtk2_ardour/icons/sixteenthnote.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_TR_Rack.midnam (from share/patchfiles/Korg_TR_Rack.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/expander.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/expander.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/sixtyfourthnote.png (from gtk2_ardour/icons/sixtyfourthnote.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/fader.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/fader.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_TR_Workstation.midnam (from share/patchfiles/Korg_TR_Workstation.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/solo-disabled.png (from gtk2_ardour/icons/solo-disabled.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/frame.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/frame.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Trinity.midnam (from share/patchfiles/Korg_Trinity.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/solo-enabled.png (from gtk2_ardour/icons/solo-enabled.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/frequencyresponse.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/frequencyresponse.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/solo-isolate-disabled.png (from gtk2_ardour/icons/solo-isolate-disabled.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Trinity_Plus.midnam (from share/patchfiles/Korg_Trinity_Plus.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/gauge.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/gauge.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/solo-isolate-enabled.png (from gtk2_ardour/icons/solo-isolate-enabled.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Trinity_Pro(X).midnam (from share/patchfiles/Korg_Trinity_Pro(X).midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/icon.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/icon.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/solo-isolated.png (from gtk2_ardour/icons/solo-isolated.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Trinity_Track.midnam (from share/patchfiles/Korg_Trinity_Track.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/knob.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/knob.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/solo-safe-disabled.png (from gtk2_ardour/icons/solo-safe-disabled.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Triton.midnam (from share/patchfiles/Korg_Triton.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/label.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/label.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/solo-safe-enabled.png (from gtk2_ardour/icons/solo-safe-enabled.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Triton_Expansion.midnam (from share/patchfiles/Korg_Triton_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/levelmeter.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/levelmeter.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/solo-safe-icon.png (from gtk2_ardour/icons/solo-safe-icon.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/list.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/list.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/soloed-by-others.png (from gtk2_ardour/icons/soloed-by-others.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Triton_Le.midnam (from share/patchfiles/Korg_Triton_Le.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/listitem.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/listitem.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/soundcloud.png (from gtk2_ardour/icons/soundcloud.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Triton_Rack.midnam (from share/patchfiles/Korg_Triton_Rack.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/meterbase.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/meterbase.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/ssl-uf8-small.png (from gtk2_ardour/icons/ssl-uf8-small.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Triton_Studio.midnam (from share/patchfiles/Korg_Triton_Studio.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/multimeter.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/multimeter.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/thirtysecondnote.png (from gtk2_ardour/icons/thirtysecondnote.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Volca_Bass.midnam (from share/patchfiles/Korg_Volca_Bass.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/notification.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/notification.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/time_exp.png (from gtk2_ardour/icons/time_exp.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Volca_Beats.midnam (from share/patchfiles/Korg_Volca_Beats.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/notifications.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/notifications.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/trim_bottom_cursor.png (from gtk2_ardour/icons/trim_bottom_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Volca_Keys.midnam (from share/patchfiles/Korg_Volca_Keys.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/pager.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/pager.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/trim_left_cursor.png (from gtk2_ardour/icons/trim_left_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Wavestation_A_D.midnam (from share/patchfiles/Korg_Wavestation_A_D.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/responsehandler.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/responsehandler.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/trim_left_cursor_5.png (from gtk2_ardour/icons/trim_left_cursor_5.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Wavestation_EX.midnam (from share/patchfiles/Korg_Wavestation_EX.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/root.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/root.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/trim_left_cursor_right_only.png (from gtk2_ardour/icons/trim_left_cursor_right_only.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Wavestation_SR.midnam (from share/patchfiles/Korg_Wavestation_SR.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/select.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/select.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/trim_right_cursor.png (from gtk2_ardour/icons/trim_right_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_X2_3_3R.midnam (from share/patchfiles/Korg_X2_3_3R.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/slider.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/slider.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/trim_right_cursor_5.png (from gtk2_ardour/icons/trim_right_cursor_5.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_X5(D).midnam (from share/patchfiles/Korg_X5(D).midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/sortablelist.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/sortablelist.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/trim_right_cursor_left_only.png (from gtk2_ardour/icons/trim_right_cursor_left_only.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_X50.midnam (from share/patchfiles/Korg_X50.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/sortablelistitem.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/sortablelistitem.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/trim_top_cursor.png (from gtk2_ardour/icons/trim_top_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/state.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/state.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_X5DR.midnam (from share/patchfiles/Korg_X5DR.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/wholenote.png (from gtk2_ardour/icons/wholenote.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/tag.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/tag.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_Z1.midnam (from share/patchfiles/Korg_Z1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/zoom_in_cursor.png (from gtk2_ardour/icons/zoom_in_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/taggable.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/taggable.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Korg_iSeries.midnam (from share/patchfiles/Korg_iSeries.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/icons/zoom_out_cursor.png (from gtk2_ardour/icons/zoom_out_cursor.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/taggablelistitem.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/taggablelistitem.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_1200_Pro_I.midnam (from share/patchfiles/Kurzweil_1200_Pro_I.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/taggabletreeitem.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/taggabletreeitem.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_1200_Pro_II.midnam (from share/patchfiles/Kurzweil_1200_Pro_II.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/tagger.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/tagger.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_K1200.midnam (from share/patchfiles/Kurzweil_K1200.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/tagnode.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/tagnode.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/tags.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/tags.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_K2000.midnam (from share/patchfiles/Kurzweil_K2000.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/toggle.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/toggle.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_K2000R.midnam (from share/patchfiles/Kurzweil_K2000R.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/tooltips.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/tooltips.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_K2000_Expansion.midnam (from share/patchfiles/Kurzweil_K2000_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/treeitem.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/treeitem.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_K2500X.midnam (from share/patchfiles/Kurzweil_K2500X.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/value.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/value.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_K2500_2600_Expansion.midnam (from share/patchfiles/Kurzweil_K2500_2600_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/valuebutton.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/valuebutton.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_K2600.midnam (from share/patchfiles/Kurzweil_K2600.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/valueknob.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/valueknob.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/widget.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/widget.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_K2661.midnam (from share/patchfiles/Kurzweil_K2661.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/mixer/toolkit/widgets/window.js (from share/web_surfaces/builtin/mixer/toolkit/widgets/window.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_K2700.midnam (from share/patchfiles/Kurzweil_K2700.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/protocol/ardour-icon.svg (from share/web_surfaces/builtin/protocol/ardour-icon.svg)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_Mark_12_152.midnam (from share/patchfiles/Kurzweil_Mark_12_152.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/protocol/index.html (from share/web_surfaces/builtin/protocol/index.html)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_Micro_Piano.midnam (from share/patchfiles/Kurzweil_Micro_Piano.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/protocol/main.css (from share/web_surfaces/builtin/protocol/main.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_PC2_PC2r_w_Orch.midnam (from share/patchfiles/Kurzweil_PC2_PC2r_w_Orch.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/protocol/main.js (from share/web_surfaces/builtin/protocol/main.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/protocol/manifest.xml (from share/web_surfaces/builtin/protocol/manifest.xml)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_PC3A.midnam (from share/patchfiles/Kurzweil_PC3A.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/transport/img/expand.svg (from share/web_surfaces/builtin/transport/img/expand.svg)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_PC88.midnam (from share/patchfiles/Kurzweil_PC88.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/transport/img/pause.svg (from share/web_surfaces/builtin/transport/img/pause.svg)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_PC88_MX.midnam (from share/patchfiles/Kurzweil_PC88_MX.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/transport/img/play.svg (from share/web_surfaces/builtin/transport/img/play.svg)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_PC88_VGM.midnam (from share/patchfiles/Kurzweil_PC88_VGM.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/transport/img/record-off.svg (from share/web_surfaces/builtin/transport/img/record-off.svg)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_PX_Plus.midnam (from share/patchfiles/Kurzweil_PX_Plus.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/transport/img/record-on.svg (from share/web_surfaces/builtin/transport/img/record-on.svg)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_SP4.midnam (from share/patchfiles/Kurzweil_SP4.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/transport/index.html (from share/web_surfaces/builtin/transport/index.html)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Kurzweil_SP88x.midnam (from share/patchfiles/Kurzweil_SP88x.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/transport/main.css (from share/web_surfaces/builtin/transport/main.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_DR_Music_FX_Expansion.midnam (from share/patchfiles/Lexicon_DR_Music_FX_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/transport/main.js (from share/web_surfaces/builtin/transport/main.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_Dual_FX_Expansion.midnam (from share/patchfiles/Lexicon_Dual_FX_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/transport/manifest.xml (from share/web_surfaces/builtin/transport/manifest.xml)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/builtin/transport/square.ttf (from share/web_surfaces/builtin/transport/square.ttf)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_Dual_Vrb_Expansion.midnam (from share/patchfiles/Lexicon_Dual_Vrb_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/index/junge-regular-webfont.ttf (from share/web_surfaces/index/junge-regular-webfont.ttf)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_MPX100.midnam (from share/patchfiles/Lexicon_MPX100.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/index/junge-regular-webfont.woff (from share/web_surfaces/index/junge-regular-webfont.woff)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_MPX500.midnam (from share/patchfiles/Lexicon_MPX500.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/index/logo.png (from share/web_surfaces/index/logo.png)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_MPX_1.midnam (from share/patchfiles/Lexicon_MPX_1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/index/main.css (from share/web_surfaces/index/main.css)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_MPX_500.midnam (from share/patchfiles/Lexicon_MPX_500.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/index/main.js (from share/web_surfaces/index/main.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_MX200.midnam (from share/patchfiles/Lexicon_MX200.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/index.html (from share/web_surfaces/index.html)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_MX300.midnam (from share/patchfiles/Lexicon_MX300.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/shared/ardour.js (from share/web_surfaces/shared/ardour.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_PCM_80.midnam (from share/patchfiles/Lexicon_PCM_80.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/shared/base/channel.js (from share/web_surfaces/shared/base/channel.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_PCM_81.midnam (from share/patchfiles/Lexicon_PCM_81.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/shared/base/component.js (from share/web_surfaces/shared/base/component.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_PCM_90.midnam (from share/patchfiles/Lexicon_PCM_90.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/shared/base/observable.js (from share/web_surfaces/shared/base/observable.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_PCM_91.midnam (from share/patchfiles/Lexicon_PCM_91.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/shared/base/protocol.js (from share/web_surfaces/shared/base/protocol.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_Pitch_FX_Expansion.midnam (from share/patchfiles/Lexicon_Pitch_FX_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/shared/components/mixer.js (from share/web_surfaces/shared/components/mixer.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Lexicon_SMG_Post_FX_Expansion.midnam (from share/patchfiles/Lexicon_SMG_Post_FX_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/shared/components/parameter.js (from share/web_surfaces/shared/components/parameter.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Line_6_Bass_POD.midnam (from share/patchfiles/Line_6_Bass_POD.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/shared/components/plugin.js (from share/web_surfaces/shared/components/plugin.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Line_6_Bass_PODxt.midnam (from share/patchfiles/Line_6_Bass_PODxt.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/shared/components/strip.js (from share/web_surfaces/shared/components/strip.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Line_6_EchoPro.midnam (from share/patchfiles/Line_6_EchoPro.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/web_surfaces/shared/components/transport.js (from share/web_surfaces/shared/components/transport.js)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Line_6_FilterPro.midnam (from share/patchfiles/Line_6_FilterPro.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Line_6_ModPro.midnam (from share/patchfiles/Line_6_ModPro.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Line_6_POD.midnam (from share/patchfiles/Line_6_POD.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Line_6_POD_2_Pro.midnam (from share/patchfiles/Line_6_POD_2_Pro.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Line_6_PODxt.midnam (from share/patchfiles/Line_6_PODxt.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Linn_AdrenaLinn_II.midnam (from share/patchfiles/Linn_AdrenaLinn_II.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/MFB_503.midnam (from share/patchfiles/MFB_503.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/MFB_Tanzbar.midnam (from share/patchfiles/MFB_Tanzbar.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/MIDI.midnam (from share/patchfiles/MIDI.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Moog_Grandmother.midnam (from share/patchfiles/Moog_Grandmother.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Moog_MF_104M_Analog_Delay.midnam (from share/patchfiles/Moog_MF_104M_Analog_Delay.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Moog_MF_108M_Cluster_Flux.midnam (from share/patchfiles/Moog_MF_108M_Cluster_Flux.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Moog_Minitaur.midnam (from share/patchfiles/Moog_Minitaur.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Moog_Slim_Phatty.midnam (from share/patchfiles/Moog_Slim_Phatty.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Moog_Subsequent_37.midnam (from share/patchfiles/Moog_Subsequent_37.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Morning_Star_MacWaveMaker.midnam (from share/patchfiles/Morning_Star_MacWaveMaker.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Nord_Modular.midnam (from share/patchfiles/Nord_Modular.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Novation_A_Station.midnam (from share/patchfiles/Novation_A_Station.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Novation_BassStationII.midnam (from share/patchfiles/Novation_BassStationII.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Novation_Bass_Station_Rack.midnam (from share/patchfiles/Novation_Bass_Station_Rack.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Novation_DrumStation.midnam (from share/patchfiles/Novation_DrumStation.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Novation_Drum_Station_Rack.midnam (from share/patchfiles/Novation_Drum_Station_Rack.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Novation_Nova.midnam (from share/patchfiles/Novation_Nova.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Novation_Super_BassStation.midnam (from share/patchfiles/Novation_Super_BassStation.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Novation_Supernova_II.midnam (from share/patchfiles/Novation_Supernova_II.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Oberheim_Matrix_1000.midnam (from share/patchfiles/Oberheim_Matrix_1000.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Peavey_DPM_V3.midnam (from share/patchfiles/Peavey_DPM_V3.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Rocktron_Replifex.midnam (from share/patchfiles/Rocktron_Replifex.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_60s_70s_Expansion.midnam (from share/patchfiles/Roland_60s_70s_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Asia_Expansion.midnam (from share/patchfiles/Roland_Asia_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Bass&Drums_Expansion.midnam (from share/patchfiles/Roland_Bass&Drums_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Big_Brass_Expansion.midnam (from share/patchfiles/Roland_Big_Brass_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Boss_DS_330.midnam (from share/patchfiles/Roland_Boss_DS_330.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Boss_GT_3.midnam (from share/patchfiles/Roland_Boss_GT_3.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Boss_SE_50.midnam (from share/patchfiles/Roland_Boss_SE_50.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Complete_Orchestra_Exp.midnam (from share/patchfiles/Roland_Complete_Orchestra_Exp.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Concert_Piano_Exp.midnam (from share/patchfiles/Roland_Concert_Piano_Exp.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Concert_Piano_Expansion.midnam (from share/patchfiles/Roland_Concert_Piano_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Country_Expansion.midnam (from share/patchfiles/Roland_Country_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_D_10.midnam (from share/patchfiles/Roland_D_10.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_D_110.midnam (from share/patchfiles/Roland_D_110.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_D_5.midnam (from share/patchfiles/Roland_D_5.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_D_50.midnam (from share/patchfiles/Roland_D_50.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_D_550.midnam (from share/patchfiles/Roland_D_550.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_D_70.midnam (from share/patchfiles/Roland_D_70.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Dance_Expansion.midnam (from share/patchfiles/Roland_Dance_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Dynamic_Drums_Exp.midnam (from share/patchfiles/Roland_Dynamic_Drums_Exp.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Dynamic_Drums_Expansion.midnam (from share/patchfiles/Roland_Dynamic_Drums_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Experience_2_Expansion.midnam (from share/patchfiles/Roland_Experience_2_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Experience_Expansion.midnam (from share/patchfiles/Roland_Experience_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Fantom.midnam (from share/patchfiles/Roland_Fantom.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_FantomX8.midnam (from share/patchfiles/Roland_FantomX8.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_FantomXR.midnam (from share/patchfiles/Roland_FantomXR.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Fantom_Xa.midnam (from share/patchfiles/Roland_Fantom_Xa.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_GR_1.midnam (from share/patchfiles/Roland_GR_1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_GR_1_w_Exp.midnam (from share/patchfiles/Roland_GR_1_w_Exp.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_GR_30.midnam (from share/patchfiles/Roland_GR_30.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_GR_33.midnam (from share/patchfiles/Roland_GR_33.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Handsonic.midnam (from share/patchfiles/Roland_Handsonic.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Hip_Hop_Expansion.midnam (from share/patchfiles/Roland_Hip_Hop_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_House_Expansion.midnam (from share/patchfiles/Roland_House_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_JD_990.midnam (from share/patchfiles/Roland_JD_990.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_JP_8000.midnam (from share/patchfiles/Roland_JP_8000.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_JP_8080.midnam (from share/patchfiles/Roland_JP_8080.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_JV_1010.midnam (from share/patchfiles/Roland_JV_1010.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_JV_1080.midnam (from share/patchfiles/Roland_JV_1080.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_JV_2080.midnam (from share/patchfiles/Roland_JV_2080.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_JV_30.midnam (from share/patchfiles/Roland_JV_30.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_JV_35_50.midnam (from share/patchfiles/Roland_JV_35_50.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_JV_80_880.midnam (from share/patchfiles/Roland_JV_80_880.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_JV_90.midnam (from share/patchfiles/Roland_JV_90.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_JX_305.midnam (from share/patchfiles/Roland_JX_305.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_JX_8P.midnam (from share/patchfiles/Roland_JX_8P.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Juno_106.midnam (from share/patchfiles/Roland_Juno_106.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Latin_Expansion.midnam (from share/patchfiles/Roland_Latin_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_MC_303.midnam (from share/patchfiles/Roland_MC_303.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_MC_307.midnam (from share/patchfiles/Roland_MC_307.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_MC_505.midnam (from share/patchfiles/Roland_MC_505.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_MT_32.midnam (from share/patchfiles/Roland_MT_32.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_M_BD1.midnam (from share/patchfiles/Roland_M_BD1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_M_DC1.midnam (from share/patchfiles/Roland_M_DC1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_M_GS64.midnam (from share/patchfiles/Roland_M_GS64.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_M_OC1.midnam (from share/patchfiles/Roland_M_OC1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_M_SE1.midnam (from share/patchfiles/Roland_M_SE1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_M_VS1.midnam (from share/patchfiles/Roland_M_VS1.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Orchestral_Expansion.midnam (from share/patchfiles/Roland_Orchestral_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Orchestral_II_Expansion.midnam (from share/patchfiles/Roland_Orchestral_II_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_PMA_5.midnam (from share/patchfiles/Roland_PMA_5.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Piano_Expansion.midnam (from share/patchfiles/Roland_Piano_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Platinum_Trax_Exp.midnam (from share/patchfiles/Roland_Platinum_Trax_Exp.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Platinum_Trax_Expansion.midnam (from share/patchfiles/Roland_Platinum_Trax_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Pop_Expansion.midnam (from share/patchfiles/Roland_Pop_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_RD_250s.midnam (from share/patchfiles/Roland_RD_250s.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_RD_600.midnam (from share/patchfiles/Roland_RD_600.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_RD_700.midnam (from share/patchfiles/Roland_RD_700.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_RD_700sx.midnam (from share/patchfiles/Roland_RD_700sx.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_RS_5_9.midnam (from share/patchfiles/Roland_RS_5_9.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_RS_9.midnam (from share/patchfiles/Roland_RS_9.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_R_8M.midnam (from share/patchfiles/Roland_R_8M.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_SC_50.midnam (from share/patchfiles/Roland_SC_50.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_SC_55.midnam (from share/patchfiles/Roland_SC_55.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_SC_55mkII.midnam (from share/patchfiles/Roland_SC_55mkII.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_SC_7.midnam (from share/patchfiles/Roland_SC_7.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_SC_88.midnam (from share/patchfiles/Roland_SC_88.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_SC_88_Pro.midnam (from share/patchfiles/Roland_SC_88_Pro.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_SH_32.midnam (from share/patchfiles/Roland_SH_32.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Session_Expansion.midnam (from share/patchfiles/Roland_Session_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Sirius.midnam (from share/patchfiles/Roland_Sirius.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_SonicCell.midnam (from share/patchfiles/Roland_SonicCell.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Special_FX_Expansion.midnam (from share/patchfiles/Roland_Special_FX_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Studio_Exp.midnam (from share/patchfiles/Roland_Studio_Exp.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Studio_Expansion.midnam (from share/patchfiles/Roland_Studio_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Super_Sound_Expansion.midnam (from share/patchfiles/Roland_Super_Sound_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Supreme_Dance_Exp.midnam (from share/patchfiles/Roland_Supreme_Dance_Exp.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Supreme_Dance_Expansion.midnam (from share/patchfiles/Roland_Supreme_Dance_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Symphonic_Strings_Exp.midnam (from share/patchfiles/Roland_Symphonic_Strings_Exp.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_TB_03.midnam (from share/patchfiles/Roland_TB_03.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Techno_Expansion.midnam (from share/patchfiles/Roland_Techno_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_U_220.midnam (from share/patchfiles/Roland_U_220.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Ultimate_Keys_Exp.midnam (from share/patchfiles/Roland_Ultimate_Keys_Exp.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Ultimate_Keys_Expansion.midnam (from share/patchfiles/Roland_Ultimate_Keys_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_V_Synth_GT.midnam (from share/patchfiles/Roland_V_Synth_GT.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Vintage_Synth_Expansion.midnam (from share/patchfiles/Roland_Vintage_Synth_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_Vocal_Expansion.midnam (from share/patchfiles/Roland_Vocal_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_World_Collection_Exp.midnam (from share/patchfiles/Roland_World_Collection_Exp.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_World_Expansion.midnam (from share/patchfiles/Roland_World_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_XP_10.midnam (from share/patchfiles/Roland_XP_10.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_XP_80.midnam (from share/patchfiles/Roland_XP_80.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_XV_2020.midnam (from share/patchfiles/Roland_XV_2020.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_XV_3080.midnam (from share/patchfiles/Roland_XV_3080.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_XV_5050.midnam (from share/patchfiles/Roland_XV_5050.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_XV_5080.midnam (from share/patchfiles/Roland_XV_5080.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Roland_XV_88.midnam (from share/patchfiles/Roland_XV_88.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Sequential_Circuits_Prophet_600.midnam (from share/patchfiles/Sequential_Circuits_Prophet_600.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/TC_Electronic_M3000.midnam (from share/patchfiles/TC_Electronic_M3000.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Tascam_TM_D1000.midnam (from share/patchfiles/Tascam_TM_D1000.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Waldorf_Blofeld.midnam (from share/patchfiles/Waldorf_Blofeld.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Waldorf_Blofeld_2012.midnam (from share/patchfiles/Waldorf_Blofeld_2012.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Waldorf_Micro_Q.midnam (from share/patchfiles/Waldorf_Micro_Q.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Waldorf_Pulse.midnam (from share/patchfiles/Waldorf_Pulse.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_AN1X.midnam (from share/patchfiles/Yamaha_AN1X.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_CS1X.midnam (from share/patchfiles/Yamaha_CS1X.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_CS2X.midnam (from share/patchfiles/Yamaha_CS2X.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_CS6R_x.midnam (from share/patchfiles/Yamaha_CS6R_x.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_CVP_103_105.midnam (from share/patchfiles/Yamaha_CVP_103_105.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_CVP_107_109_700.midnam (from share/patchfiles/Yamaha_CVP_107_109_700.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_DX_7.midnam (from share/patchfiles/Yamaha_DX_7.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_EX_5.midnam (from share/patchfiles/Yamaha_EX_5.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_EX_5_7.midnam (from share/patchfiles/Yamaha_EX_5_7.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_FS1R.midnam (from share/patchfiles/Yamaha_FS1R.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_MM6.midnam (from share/patchfiles/Yamaha_MM6.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_MOTIF_6_7_8.midnam (from share/patchfiles/Yamaha_MOTIF_6_7_8.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_MOTIF_ES_6_7_8.midnam (from share/patchfiles/Yamaha_MOTIF_ES_6_7_8.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_MOTIF_RACK_ES.midnam (from share/patchfiles/Yamaha_MOTIF_RACK_ES.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_MOTIF_Rack.midnam (from share/patchfiles/Yamaha_MOTIF_Rack.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_MOTIF_XS.midnam (from share/patchfiles/Yamaha_MOTIF_XS.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_MU100R.midnam (from share/patchfiles/Yamaha_MU100R.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_MU10XG.midnam (from share/patchfiles/Yamaha_MU10XG.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_MU50.midnam (from share/patchfiles/Yamaha_MU50.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_MU80.midnam (from share/patchfiles/Yamaha_MU80.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_MU90R.midnam (from share/patchfiles/Yamaha_MU90R.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_MX-49-61-88.midnam (from share/patchfiles/Yamaha_MX-49-61-88.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_NP-V80.midnam (from share/patchfiles/Yamaha_NP-V80.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_PLG100_XG_Expansion.midnam (from share/patchfiles/Yamaha_PLG100_XG_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_PLG150DX_Expansion.midnam (from share/patchfiles/Yamaha_PLG150DX_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_PLG150PF_Expansion.midnam (from share/patchfiles/Yamaha_PLG150PF_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_PLG150VL_Expansion.midnam (from share/patchfiles/Yamaha_PLG150VL_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_PLG150_AN_Expansion.midnam (from share/patchfiles/Yamaha_PLG150_AN_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_PLG150_DR_PC_Expansion.midnam (from share/patchfiles/Yamaha_PLG150_DR_PC_Expansion.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_PSR540.midnam (from share/patchfiles/Yamaha_PSR540.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_PSR_275.midnam (from share/patchfiles/Yamaha_PSR_275.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_PSR_530_630_730.midnam (from share/patchfiles/Yamaha_PSR_530_630_730.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_PSR_8000.midnam (from share/patchfiles/Yamaha_PSR_8000.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_PSR_9000.midnam (from share/patchfiles/Yamaha_PSR_9000.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_PSR_DJX.midnam (from share/patchfiles/Yamaha_PSR_DJX.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_PSR_DJX_II.midnam (from share/patchfiles/Yamaha_PSR_DJX_II.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_PSR_S900.midnam (from share/patchfiles/Yamaha_PSR_S900.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_P_121_125.midnam (from share/patchfiles/Yamaha_P_121_125.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_QS300.midnam (from share/patchfiles/Yamaha_QS300.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_QY70.midnam (from share/patchfiles/Yamaha_QY70.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_RM50.midnam (from share/patchfiles/Yamaha_RM50.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_S30_80.midnam (from share/patchfiles/Yamaha_S30_80.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_S90.midnam (from share/patchfiles/Yamaha_S90.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_SY77.midnam (from share/patchfiles/Yamaha_SY77.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_SY85.midnam (from share/patchfiles/Yamaha_SY85.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_SY99.midnam (from share/patchfiles/Yamaha_SY99.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_So3.midnam (from share/patchfiles/Yamaha_So3.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_So8.midnam (from share/patchfiles/Yamaha_So8.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_TG100.midnam (from share/patchfiles/Yamaha_TG100.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_TG500.midnam (from share/patchfiles/Yamaha_TG500.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_TG77.midnam (from share/patchfiles/Yamaha_TG77.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_TX81Z.midnam (from share/patchfiles/Yamaha_TX81Z.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_Tyros.midnam (from share/patchfiles/Yamaha_Tyros.midnam)
+ install /home/buildozer/aports/community/ardour/pkg/ardour/usr/share/ardour8/patchfiles/Yamaha_Tyros2.midnam (from share/patchfiles/Yamaha_Tyros2.midnam)
Waf: Leaving directory `/home/buildozer/aports/community/ardour/src/Ardour-8.10.0/build'
'install' finished successfully (15.839s)
>>> ardour*: Running postcheck for ardour
>>> ardour*: Preparing package ardour...
>>> ardour*: Stripping binaries
>>> ardour*: Scanning shared objects
>>> ardour*: Tracing dependencies...
	so:libX11.so.6
	so:libXext.so.6
	so:libarchive.so.13
	so:libasound.so.2
	so:libaubio.so.5
	so:libc.musl-riscv64.so.1
	so:libcairo.so.2
	so:libcairomm-1.0.so.1
	so:libcurl.so.4
	so:libdbus-1.so.3
	so:libfftw3f.so.3
	so:libfftw3f_threads.so.3
	so:libfontconfig.so.1
	so:libgcc_s.so.1
	so:libgio-2.0.so.0
	so:libgiomm-2.4.so.1
	so:libglib-2.0.so.0
	so:libglibmm-2.4.so.1
	so:libgmodule-2.0.so.0
	so:libgobject-2.0.so.0
	so:libintl.so.8
	so:libjack.so.0
	so:liblilv-0.so.0
	so:liblo.so.7
	so:liblrdf.so.2
	so:libpango-1.0.so.0
	so:libpangocairo-1.0.so.0
	so:libpangoft2-1.0.so.0
	so:libpangomm-1.4.so.1
	so:libpng16.so.16
	so:libpulse.so.0
	so:libreadline.so.8
	so:librubberband.so.2
	so:libsamplerate.so.0
	so:libsigc-2.0.so.0
	so:libsndfile.so.1
	so:libstdc++.so.6
	so:libtag.so.1
	so:libusb-1.0.so.0
	so:libvamp-hostsdk.so.3
	so:libvamp-sdk.so.2
	so:libxml2.so.2
>>> ardour*: Package size: 88.0 MB
>>> ardour*: Compressing data...
>>> ardour*: Create checksum...
>>> ardour*: Create ardour-8.10.0-r0.apk
>>> ardour: Build complete at Wed, 06 Nov 2024 14:55:55 +0000 elapsed time 0h 36m 6s
>>> ardour: Cleaning up srcdir
>>> ardour: Cleaning up pkgdir
>>> ardour: Uninstalling dependencies...
(1/447) Purging .makedepends-ardour (20241106.141952)
(2/447) Purging aubio-dev (0.4.9-r4)
(3/447) Purging aubio (0.4.9-r4)
(4/447) Purging boost-dev (1.84.0-r2)
(5/447) Purging boost1.84-dev (1.84.0-r2)
(6/447) Purging boost1.84 (1.84.0-r2)
(7/447) Purging boost1.84-libs (1.84.0-r2)
(8/447) Purging boost1.84-atomic (1.84.0-r2)
(9/447) Purging boost1.84-chrono (1.84.0-r2)
(10/447) Purging boost1.84-container (1.84.0-r2)
(11/447) Purging boost1.84-contract (1.84.0-r2)
(12/447) Purging boost1.84-coroutine (1.84.0-r2)
(13/447) Purging boost1.84-date_time (1.84.0-r2)
(14/447) Purging boost1.84-fiber (1.84.0-r2)
(15/447) Purging boost1.84-graph (1.84.0-r2)
(16/447) Purging boost1.84-iostreams (1.84.0-r2)
(17/447) Purging boost1.84-json (1.84.0-r2)
(18/447) Purging boost1.84-locale (1.84.0-r2)
(19/447) Purging boost1.84-log_setup (1.84.0-r2)
(20/447) Purging boost1.84-math (1.84.0-r2)
(21/447) Purging boost1.84-nowide (1.84.0-r2)
(22/447) Purging boost1.84-prg_exec_monitor (1.84.0-r2)
(23/447) Purging boost1.84-program_options (1.84.0-r2)
(24/447) Purging boost1.84-python3 (1.84.0-r2)
(25/447) Purging boost1.84-random (1.84.0-r2)
(26/447) Purging boost1.84-regex (1.84.0-r2)
(27/447) Purging boost1.84-stacktrace_basic (1.84.0-r2)
(28/447) Purging boost1.84-stacktrace_noop (1.84.0-r2)
(29/447) Purging boost1.84-system (1.84.0-r2)
(30/447) Purging boost1.84-timer (1.84.0-r2)
(31/447) Purging boost1.84-type_erasure (1.84.0-r2)
(32/447) Purging boost1.84-unit_test_framework (1.84.0-r2)
(33/447) Purging boost1.84-url (1.84.0-r2)
(34/447) Purging boost1.84-wave (1.84.0-r2)
(35/447) Purging boost1.84-wserialization (1.84.0-r2)
(36/447) Purging fluidsynth-dev (2.3.6-r0)
(37/447) Purging fluidsynth-libs (2.3.6-r0)
(38/447) Purging gtkmm-dev (2.24.5-r4)
(39/447) Purging gtkmm (2.24.5-r4)
(40/447) Purging hidapi-dev (0.14.0-r0)
(41/447) Purging hidapi (0.14.0-r0)
(42/447) Purging itstool (2.0.7-r2)
(43/447) Purging py3-libxml2-pyc (2.13.4-r3)
(44/447) Purging py3-libxml2 (2.13.4-r3)
(45/447) Purging jack-dev (1.9.22-r4)
(46/447) Purging libarchive-dev (3.7.7-r0)
(47/447) Purging libarchive (3.7.7-r0)
(48/447) Purging liblo-dev (0.31-r1)
(49/447) Purging liblo (0.31-r1)
(50/447) Purging libsndfile-dev (1.2.2-r0)
(51/447) Purging libusb-dev (1.0.27-r0)
(52/447) Purging libusb (1.0.27-r0)
(53/447) Purging lilv-dev (0.24.24-r1)
(54/447) Purging lilv-libs (0.24.24-r1)
(55/447) Purging lrdf-dev (0.6.1-r2)
(56/447) Purging lrdf (0.6.1-r2)
(57/447) Purging pulseaudio-dev (17.0-r4)
(58/447) Purging libpulse-mainloop-glib (17.0-r4)
(59/447) Purging libpulse (17.0-r4)
(60/447) Purging readline-dev (8.2.13-r0)
(61/447) Purging libhistory (8.2.13-r0)
(62/447) Purging redland-dev (1.0.17-r3)
(63/447) Purging redland (1.0.17-r3)
(64/447) Purging rubberband-dev (3.3.0-r1)
(65/447) Purging rubberband-libs (3.3.0-r1)
(66/447) Purging sratom-dev (0.6.16-r0)
(67/447) Purging sratom (0.6.16-r0)
(68/447) Purging suil-dev (0.10.20-r0)
(69/447) Purging suil (0.10.20-r0)
(70/447) Purging taglib-dev (1.13.1-r0)
(71/447) Purging libtag_c (1.13.1-r0)
(72/447) Purging vamp-sdk-dev (2.10.0-r2)
(73/447) Purging vamp-sdk-libs (2.10.0-r2)
(74/447) Purging agetty-openrc (0.55.1-r2)
(75/447) Purging agetty (2.40.2-r3)
(76/447) Purging atkmm-dev (2.28.4-r1)
(77/447) Purging atkmm (2.28.4-r1)
(78/447) Purging blkid (2.40.2-r3)
(79/447) Purging boost1.84-context (1.84.0-r2)
(80/447) Purging boost1.84-log (1.84.0-r2)
(81/447) Purging boost1.84-serialization (1.84.0-r2)
(82/447) Purging boost1.84-thread (1.84.0-r2)
(83/447) Purging cfdisk (2.40.2-r3)
(84/447) Purging dmesg (2.40.2-r3)
(85/447) Purging ffmpeg-libavformat (6.1.1-r10)
(86/447) Purging fftw-dev (3.3.10-r5)
(87/447) Purging fftw-double-libs (3.3.10-r5)
(88/447) Purging fftw-long-double-libs (3.3.10-r5)
(89/447) Purging fftw-single-libs (3.3.10-r5)
(90/447) Purging findmnt (2.40.2-r3)
(91/447) Purging flac-dev (1.4.3-r1)
(92/447) Purging libflac++ (1.4.3-r1)
(93/447) Purging flock (2.40.2-r3)
(94/447) Purging fstrim (2.40.2-r3)
(95/447) Purging git-perl (2.46.2-r0)
(96/447) Purging perl-git (2.46.2-r0)
(97/447) Purging perl-error (0.17029-r2)
(98/447) Purging gtk+2.0-dev (2.24.33-r11)
(99/447) Purging intltool (0.51.0-r8)
(100/447) Purging perl-xml-parser (2.47-r1)
(101/447) Purging perl-libwww (6.77-r0)
(102/447) Purging perl-http-cookies (6.11-r0)
(103/447) Purging perl-net-http (6.23-r1)
(104/447) Purging perl-html-parser (3.83-r0)
(105/447) Purging perl-html-tagset (3.24-r0)
(106/447) Purging perl-file-listing (6.16-r0)
(107/447) Purging perl-www-robotrules (6.02-r5)
(108/447) Purging perl-http-negotiate (6.01-r5)
(109/447) Purging perl-http-message (7.00-r0)
(110/447) Purging perl-clone (0.47-r0)
(111/447) Purging perl-http-date (6.06-r0)
(112/447) Purging perl-uri (5.28-r0)
(113/447) Purging perl-io-html (1.004-r1)
(114/447) Purging perl-lwp-mediatypes (6.04-r3)
(115/447) Purging perl-encode-locale (1.05-r5)
(116/447) Purging perl-try-tiny (0.32-r0)
(117/447) Purging perl (5.40.0-r3)
(118/447) Purging libxdamage-dev (1.1.6-r5)
(119/447) Purging hexdump (2.40.2-r3)
(120/447) Purging libasyncns (0.8-r4)
(121/447) Purging libbluray (1.3.4-r1)
(122/447) Purging libltdl (2.4.7-r3)
(123/447) Purging libopenmpt (0.7.10-r0)
(124/447) Purging librist (0.2.10-r1)
(125/447) Purging libsamplerate-dev (0.2.2-r3)
(126/447) Purging libsrt (1.5.3-r0)
(127/447) Purging libssh (0.11.1-r0)
(128/447) Purging libtag (1.13.1-r0)
(129/447) Purging libvorbis-dev (1.3.7-r2)
(130/447) Purging libzmq (4.3.5-r2)
(131/447) Purging logger (2.40.2-r3)
(132/447) Purging losetup (2.40.2-r3)
(133/447) Purging lsblk (2.40.2-r3)
(134/447) Purging lscpu (2.40.2-r3)
(135/447) Purging lv2-dev (1.18.10-r0)
(136/447) Purging lv2-specgen (1.18.10-r0)
(137/447) Purging py3-lxml-pyc (5.3.0-r0)
(138/447) Purging py3-lxml (5.3.0-r0)
(139/447) Purging py3-rdflib-pyc (7.1.1-r0)
(140/447) Purging py3-rdflib (7.1.1-r0)
(141/447) Purging py3-html5lib-pyc (1.1-r6)
(142/447) Purging py3-html5lib (1.1-r6)
(143/447) Purging py3-six-pyc (1.16.0-r9)
(144/447) Purging py3-six (1.16.0-r9)
(145/447) Purging py3-webencodings-pyc (0.5.1-r8)
(146/447) Purging py3-webencodings (0.5.1-r8)
(147/447) Purging py3-isodate-pyc (0.7.2-r0)
(148/447) Purging py3-isodate (0.7.2-r0)
(149/447) Purging py3-markdown-pyc (3.7-r0)
(150/447) Purging py3-markdown (3.7-r0)
(151/447) Purging py3-pygments-pyc (2.18.0-r0)
(152/447) Purging py3-pygments (2.18.0-r0)
(153/447) Purging mbedtls (3.6.2-r0)
(154/447) Purging mcookie (2.40.2-r3)
(155/447) Purging mount (2.40.2-r3)
(156/447) Purging mpg123-libs (1.32.9-r0)
(157/447) Purging opus-dev (1.5.2-r1)
(158/447) Purging orc (0.4.40-r1)
(159/447) Purging pangomm-dev (2.46.4-r1)
(160/447) Purging pangomm (2.46.4-r1)
(161/447) Purging partx (2.40.2-r3)
(162/447) Purging pipewire-dev (1.2.6-r0)
(163/447) Purging pipewire-libs (1.2.6-r0)
(164/447) Purging portaudio-dev (19.7.0-r2)
(165/447) Purging libportaudiocxx (19.7.0-r2)
(166/447) Purging portaudio (19.7.0-r2)
(167/447) Purging py3-packaging-pyc (24.1-r0)
(168/447) Purging py3-parsing-pyc (3.1.4-r0)
(169/447) Purging python3-pyc (3.12.7-r1)
(170/447) Purging python3-pycache-pyc0 (3.12.7-r1)
(171/447) Purging xcb-proto-pyc (1.17.0-r0)
(172/447) Purging pyc (3.12.7-r1)
(173/447) Purging qt5-qtwayland (5.15.10_git20230714-r0)
(174/447) Purging qt5-qtx11extras (5.15.10_git20230424-r1)
(175/447) Purging rasqal-dev (0.9.33-r3)
(176/447) Purging rasqal (0.9.33-r3)
(177/447) Purging roc-toolkit-libs (0.4.0-r0)
(178/447) Purging runuser (2.40.2-r3)
(179/447) Purging setpriv (2.40.2-r3)
(180/447) Purging sfdisk (2.40.2-r3)
(181/447) Purging sord-dev (0.16.16-r0)
(182/447) Purging sord-libs (0.16.16-r0)
(183/447) Purging speexdsp (1.2.1-r2)
(184/447) Purging tdb-libs (1.4.10-r0)
(185/447) Purging umount (2.40.2-r3)
(186/447) Purging util-linux-misc (2.40.2-r3)
(187/447) Purging setarch (2.40.2-r3)
(188/447) Purging util-linux-openrc (2.40.2-r3)
(189/447) Purging uuidgen (2.40.2-r3)
(190/447) Purging wipefs (2.40.2-r3)
(191/447) Purging zix-dev (0.4.2-r0)
(192/447) Purging zix-libs (0.4.2-r0)
(193/447) Purging alsa-lib-dev (1.2.12-r0)
(194/447) Purging jack (1.9.22-r4)
(195/447) Purging libsndfile (1.2.2-r0)
(196/447) Purging alsa-lib (1.2.12-r0)
(197/447) Purging ffmpeg-libavcodec (6.1.1-r10)
(198/447) Purging aom-libs (3.10.0-r0)
(199/447) Purging at-spi2-core-dev (2.54.0-r0)
(200/447) Purging qt5-qtdeclarative (5.15.10_git20230629-r0)
(201/447) Purging qt5-qtbase-x11 (5.15.10_git20230714-r3)
(202/447) Purging xdg-utils (1.2.1-r1)
(203/447) Purging xprop (1.2.7-r0)
(204/447) Purging xset (1.2.5-r1)
(205/447) Purging gtk+3.0 (3.24.43-r2)
Executing gtk+3.0-3.24.43-r2.post-deinstall
(206/447) Purging libatk-bridge-2.0 (2.54.0-r0)
(207/447) Purging at-spi2-core (2.54.0-r0)
(208/447) Purging gtk+2.0 (2.24.33-r11)
Executing gtk+2.0-2.24.33-r11.post-deinstall
(209/447) Purging gtk-update-icon-cache (3.24.43-r2)
(210/447) Purging hicolor-icon-theme (0.18-r0)
(211/447) Purging cups-libs (2.4.11-r0)
(212/447) Purging avahi-libs (0.8-r19)
(213/447) Purging boost1.84-filesystem (1.84.0-r2)
(214/447) Purging raptor2-dev (2.0.16-r1)
(215/447) Purging libxslt-dev (1.1.42-r1)
(216/447) Purging yajl-dev (2.1.0-r9)
(217/447) Purging raptor2 (2.0.16-r1)
(218/447) Purging curl-dev (8.10.1-r0)
(219/447) Purging pango-dev (1.54.0-r1)
(220/447) Purging pango-tools (1.54.0-r1)
(221/447) Purging pango (1.54.0-r1)
Executing pango-1.54.0-r1.pre-deinstall
(222/447) Purging harfbuzz-dev (9.0.0-r1)
(223/447) Purging harfbuzz-cairo (9.0.0-r1)
(224/447) Purging harfbuzz-gobject (9.0.0-r1)
(225/447) Purging harfbuzz-icu (9.0.0-r1)
(226/447) Purging harfbuzz-subset (9.0.0-r1)
(227/447) Purging harfbuzz (9.0.0-r1)
(228/447) Purging graphite2-dev (1.3.14-r6)
(229/447) Purging graphite2 (1.3.14-r6)
(230/447) Purging cairomm-dev (1.14.5-r0)
(231/447) Purging cairomm (1.14.5-r0)
(232/447) Purging cairo-dev (1.18.2-r1)
(233/447) Purging cairo-tools (1.18.2-r1)
(234/447) Purging xcb-util-dev (0.4.1-r3)
(235/447) Purging util-macros (1.20.1-r0)
(236/447) Purging cairo-gobject (1.18.2-r1)
(237/447) Purging cairo (1.18.2-r1)
(238/447) Purging libxft-dev (2.3.8-r3)
(239/447) Purging libxft (2.3.8-r3)
(240/447) Purging fontconfig-dev (2.15.0-r1)
(241/447) Purging fontconfig (2.15.0-r1)
(242/447) Purging freetype-dev (2.13.3-r0)
(243/447) Purging freetype (2.13.3-r0)
(244/447) Purging brotli-dev (1.1.0-r2)
(245/447) Purging brotli (1.1.0-r2)
(246/447) Purging glibmm-dev (2.66.7-r0)
(247/447) Purging glibmm (2.66.7-r0)
(248/447) Purging gdk-pixbuf-dev (2.42.12-r1)
(249/447) Purging gdk-pixbuf (2.42.12-r1)
Executing gdk-pixbuf-2.42.12-r1.pre-deinstall
(250/447) Purging glib-dev (2.82.2-r0)
(251/447) Purging bzip2-dev (1.0.8-r6)
(252/447) Purging docbook-xsl (1.79.2-r11)
(253/447) Purging docbook-xsl-ns (1.79.2-r11)
Executing docbook-xsl-ns-1.79.2-r11.pre-deinstall
(254/447) Purging docbook-xsl-nons (1.79.2-r11)
Executing docbook-xsl-nons-1.79.2-r11.pre-deinstall
(255/447) Purging docbook-xml (4.5-r9)
Executing docbook-xml-4.5-r9.pre-deinstall
(256/447) Purging gettext-dev (0.22.5-r0)
(257/447) Purging gettext-asprintf (0.22.5-r0)
(258/447) Purging gettext (0.22.5-r0)
(259/447) Purging gettext-envsubst (0.22.5-r0)
(260/447) Purging libxslt (1.1.42-r1)
(261/447) Purging py3-packaging (24.1-r0)
(262/447) Purging py3-parsing (3.1.4-r0)
(263/447) Purging pcre2-dev (10.43-r0)
(264/447) Purging libpcre2-32 (10.43-r0)
(265/447) Purging libedit-dev (20240808.3.1-r0)
(266/447) Purging ncurses-dev (6.5_p20241006-r2)
(267/447) Purging libncurses++ (6.5_p20241006-r2)
(268/447) Purging bsd-compat-headers (0.7.2-r6)
(269/447) Purging c-ares-dev (1.34.2-r0)
(270/447) Purging dbus-dev (1.14.10-r4)
(271/447) Purging qt5-qtbase (5.15.10_git20230714-r3)
(272/447) Purging dbus-libs (1.14.10-r4)
(273/447) Purging libinput-libs (1.26.2-r0)
(274/447) Purging libcamera (0.3.2-r0)
(275/447) Purging eudev-libs (3.2.14-r5)
(276/447) Purging expat-dev (2.6.3-r0)
(277/447) Purging expat (2.6.3-r0)
(278/447) Purging ffmpeg-libswresample (6.1.1-r10)
(279/447) Purging ffmpeg-libavutil (6.1.1-r10)
(280/447) Purging fribidi-dev (1.0.16-r0)
(281/447) Purging fribidi (1.0.16-r0)
(282/447) Purging libxrender-dev (0.9.11-r5)
(283/447) Purging libxtst-dev (1.2.5-r0)
(284/447) Purging libxtst (1.2.5-r0)
(285/447) Purging libxi-dev (1.8.2-r0)
(286/447) Purging libxi (1.8.2-r0)
(287/447) Purging libxfixes-dev (6.0.1-r4)
(288/447) Purging libxext-dev (1.3.6-r2)
(289/447) Purging libx11-dev (1.8.10-r0)
(290/447) Purging xtrans (1.5.1-r0)
(291/447) Purging libxcb-dev (1.16.1-r0)
(292/447) Purging xcb-proto (1.17.0-r0)
(293/447) Purging python3 (3.12.7-r1)
(294/447) Purging gdbm (1.24-r0)
(295/447) Purging gettext-libs (0.22.5-r0)
(296/447) Purging libjxl (0.10.2-r0)
(297/447) Purging giflib (5.2.2-r0)
(298/447) Purging shared-mime-info (2.4-r0)
Executing shared-mime-info-2.4-r0.post-deinstall
(299/447) Purging libatk-1.0 (2.54.0-r0)
(300/447) Purging glib (2.82.2-r0)
(301/447) Purging gnutls (3.8.5-r0)
(302/447) Purging mesa-gl (24.2.6-r0)
(303/447) Purging libva (2.22.0-r1)
(304/447) Purging mesa-egl (24.2.6-r0)
(305/447) Purging mesa-gbm (24.2.6-r0)
(306/447) Purging mesa (24.2.6-r0)
(307/447) Purging libdrm (2.4.123-r1)
(308/447) Purging libpciaccess (0.18.1-r0)
(309/447) Purging hwdata-pci (0.388-r0)
(310/447) Purging icu-dev (74.2-r0)
(311/447) Purging icu (74.2-r0)
(312/447) Purging icu-libs (74.2-r0)
(313/447) Purging icu-data-full (74.2-r0)
(314/447) Purging openexr-libopenexr (3.1.13-r2)
(315/447) Purging imath (3.1.12-r0)
(316/447) Purging lame-libs (3.100-r5)
(317/447) Purging lcms2 (2.16-r0)
(318/447) Purging util-linux-dev (2.40.2-r3)
(319/447) Purging libfdisk (2.40.2-r3)
(320/447) Purging libmount (2.40.2-r3)
(321/447) Purging libsmartcols (2.40.2-r3)
(322/447) Purging util-linux (2.40.2-r3)
(323/447) Purging libblkid (2.40.2-r3)
(324/447) Purging libxdmcp-dev (1.1.5-r1)
(325/447) Purging xcb-util-renderutil (0.3.10-r0)
(326/447) Purging xcb-util-image (0.4.1-r0)
(327/447) Purging libxkbcommon-x11 (1.7.0-r1)
(328/447) Purging xcb-util-wm (0.4.2-r0)
(329/447) Purging libxmu (1.2.1-r0)
(330/447) Purging libvdpau (1.5-r4)
(331/447) Purging libxrandr (1.5.4-r1)
(332/447) Purging libxinerama (1.1.5-r4)
(333/447) Purging libxxf86vm (1.1.5-r6)
(334/447) Purging libxext (1.3.6-r2)
(335/447) Purging libxcursor (1.2.2-r1)
(336/447) Purging libxdamage (1.1.6-r5)
(337/447) Purging libxrender (0.9.11-r5)
(338/447) Purging libxt (1.3.0-r5)
(339/447) Purging libxcomposite (0.4.6-r5)
(340/447) Purging libxfixes (6.0.1-r4)
(341/447) Purging libx11 (1.8.10-r0)
(342/447) Purging xcb-util-keysyms (0.4.1-r0)
(343/447) Purging xcb-util (0.4.1-r3)
(344/447) Purging libxcb (1.16.1-r0)
(345/447) Purging libxdmcp (1.1.5-r1)
(346/447) Purging libbsd (0.12.2-r0)
(347/447) Purging libbz2 (1.0.8-r6)
(348/447) Purging libcap-ng (0.8.5-r0)
(349/447) Purging libdav1d (1.5.0-r0)
(350/447) Purging libeconf (0.6.3-r0)
(351/447) Purging libelf (0.191-r0)
(352/447) Purging libepoxy (1.5.10-r1)
(353/447) Purging libevdev (1.13.3-r0)
(354/447) Purging libffi-dev (3.4.6-r0)
(355/447) Purging linux-headers (6.6-r1)
(356/447) Purging llvm19-libs (19.1.2-r0)
(357/447) Purging wayland-libs-cursor (1.23.1-r0)
(358/447) Purging wayland-libs-client (1.23.1-r0)
(359/447) Purging p11-kit (0.25.5-r2)
(360/447) Purging wayland-libs-server (1.23.1-r0)
(361/447) Purging libffi (3.4.6-r0)
(362/447) Purging libflac (1.4.3-r1)
(363/447) Purging libformw (6.5_p20241006-r2)
(364/447) Purging libgcrypt (1.10.3-r1)
(365/447) Purging libgpg-error (1.50-r0)
(366/447) Purging libhwy (1.0.7-r0)
(367/447) Purging libsm (1.2.4-r4)
(368/447) Purging libice (1.1.1-r6)
(369/447) Purging libpsl-dev (0.21.5-r3)
(370/447) Purging libpsl-utils (0.21.5-r3)
(371/447) Purging libidn2-dev (2.3.7-r0)
(372/447) Purging libintl (0.22.5-r0)
(373/447) Purging tiff-dev (4.7.0-r0)
(374/447) Purging libtiffxx (4.7.0-r0)
(375/447) Purging tiff (4.7.0-r0)
(376/447) Purging libjpeg-turbo-dev (3.0.4-r0)
(377/447) Purging libturbojpeg (3.0.4-r0)
(378/447) Purging libjpeg-turbo (3.0.4-r0)
(379/447) Purging libmd (1.1.0-r0)
(380/447) Purging libmenuw (6.5_p20241006-r2)
(381/447) Purging libogg-dev (1.3.5-r5)
(382/447) Purging libtheora (1.1.1-r18)
(383/447) Purging libvorbis (1.3.7-r2)
(384/447) Purging libogg (1.3.5-r5)
(385/447) Purging libpanelw (6.5_p20241006-r2)
(386/447) Purging libpcre2-16 (10.43-r0)
(387/447) Purging libpng-dev (1.6.44-r0)
(388/447) Purging libpng (1.6.44-r0)
(389/447) Purging libsamplerate (0.2.2-r3)
(390/447) Purging libwebp-dev (1.4.0-r0)
(391/447) Purging libwebpdecoder (1.4.0-r0)
(392/447) Purging libwebpdemux (1.4.0-r0)
(393/447) Purging libwebpmux (1.4.0-r0)
(394/447) Purging libwebp (1.4.0-r0)
(395/447) Purging libsharpyuv (1.4.0-r0)
(396/447) Purging libsigc++-dev (2.12.1-r0)
(397/447) Purging libsigc++ (2.12.1-r0)
(398/447) Purging libsodium (1.0.20-r0)
(399/447) Purging libSvtAv1Enc (2.2.1-r0)
(400/447) Purging libtasn1 (4.19.0-r2)
(401/447) Purging libunwind (1.8.1-r0)
(402/447) Purging libuuid (2.40.2-r3)
(403/447) Purging libuv (1.49.2-r0)
(404/447) Purging libvpx (1.14.1-r0)
(405/447) Purging libxau-dev (1.0.11-r4)
(406/447) Purging libxau (1.0.11-r4)
(407/447) Purging libxkbcommon (1.7.0-r1)
(408/447) Purging xkeyboard-config (2.43-r0)
(409/447) Purging libxml2-dev (2.13.4-r3)
(410/447) Purging libxml2-utils (2.13.4-r3)
(411/447) Purging libxml2 (2.13.4-r3)
(412/447) Purging libxshmfence (1.3.2-r6)
(413/447) Purging linux-pam (1.6.1-r1)
(414/447) Purging mesa-glapi (24.2.6-r0)
(415/447) Purging mpdecimal (4.0.0-r0)
(416/447) Purging mtdev (1.1.7-r0)
(417/447) Purging nettle (3.10-r1)
(418/447) Purging nghttp2-dev (1.64.0-r0)
(419/447) Purging x265-libs (3.6-r0)
(420/447) Purging numactl (2.0.18-r0)
(421/447) Purging openexr-libilmthread (3.1.13-r2)
(422/447) Purging openexr-libiex (3.1.13-r2)
(423/447) Purging openssl-dev (3.3.2-r3)
(424/447) Purging opus (1.5.2-r1)
(425/447) Purging pixman-dev (0.43.4-r1)
(426/447) Purging pixman (0.43.4-r1)
(427/447) Purging rav1e-libs (0.7.1-r0)
(428/447) Purging serd-dev (0.32.2-r0)
(429/447) Purging serd-libs (0.32.2-r0)
(430/447) Purging utmps-libs (0.1.2.3-r2)
(431/447) Purging skalibs-libs (2.14.3.0-r0)
(432/447) Purging soxr (0.1.3-r7)
(433/447) Purging sqlite-dev (3.47.0-r0)
(434/447) Purging sqlite-libs (3.47.0-r0)
(435/447) Purging sqlite (3.47.0-r0)
(436/447) Purging wayland-libs-egl (1.23.1-r0)
(437/447) Purging x264-libs (0.164.3108-r0)
(438/447) Purging xorgproto (2024.1-r0)
(439/447) Purging xvidcore (1.3.7-r2)
(440/447) Purging xz-dev (5.6.3-r0)
(441/447) Purging xz (5.6.3-r0)
(442/447) Purging xz-libs (5.6.3-r0)
(443/447) Purging yajl (2.1.0-r9)
(444/447) Purging yaml (0.2.5-r2)
(445/447) Purging zlib-dev (1.3.1-r2)
(446/447) Purging zstd-dev (1.5.6-r1)
(447/447) Purging zstd (1.5.6-r1)
Executing busybox-1.37.0-r6.trigger
OK: 333 MiB in 98 packages
>>> ardour: Updating the community/riscv64 repository index...
>>> ardour: Signing the index...